アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のような単純なプログラムなのですが、
p (1..10).find {|n| n > 3}

実行するとWARNINGが表示されてしまいます。

$ ruby -v test.rb
ruby 1.8.4 (2005-12-24) [i386-cygwin]
test.rb:2: warning: (...) interpreted as grouped expression
4

「interpreted as grouped expression」のエラーは何を意味するのでしょうか。

A 回答 (1件)

エラー (Error)じゃなくて、警告 (Warning)なんですけどね。


これは、pはメソッドなので、
p "hogehoge" は p("hogehoge") と書くことができます。
このとき、p("hogehoge") と p ("hogehoge") とでは意味と動作が変わることがあります。

質問にある例でいうと、
> p (1..10).find {|n| n > 3}
(1..10) の部分について、「ひょっとして p(1..10)としたかったのではないですか?」
と注意を促しているのです。

p( (1..10).find {|n| n > 3} )

のように、pの引数を囲むカッコをつければ警告は出なくなります。

>ruby 1.8.4 (2005-12-24) [i386-cygwin]
ところでバージョンがずいぶん古いですね。
新しくした方がいいと思いますよ(現在は1.8.7)。
    • good
    • 0
この回答へのお礼

なるほどです。
大変助かりました。 バージョンも更新することにします。

どうもありがとうございました。

お礼日時:2008/11/12 16:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!