3
puts bool ? "true" : "false"

適当ですが、

bool ? puts "true" : puts "false"

ではありません。誰かが私にこれがなぜなのか説明できますか?

サイドノート:

bool ? ( puts "true" ) : ( puts "false" )

同様に正常に動作します。

4

1 に答える 1

6

メソッド呼び出しに括弧を付けない場合、Ruby は行末まですべてを引数にしたいと想定します。つまり、これらの呼び出しは同等 (かつ無効) です。

bool ? puts "true" : puts "false"
bool ? puts("true" : puts "false")
于 2013-05-18T22:40:38.667 に答える