• ベストアンサー

WARNINGエラー「interpreted as grouped expression」

以下のような単純なプログラムなのですが、 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」のエラーは何を意味するのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.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)。

hokuhoku7
質問者

お礼

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

関連するQ&A

専門家に質問してみよう