1

三元評価にコードを入れると失敗するようですが、置くtrueかうまくいきfalseます。

これが私のコードです:

>test = [nil]
=> [nil]

>test.any? ? puts "AAA" : puts "BBB"
SyntaxError: (irb):16: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
test.any? ? puts "AAA" : puts "BBB"
                  ^
(irb):16: syntax error, unexpected ':', expecting $end
test.any? ? puts "AAA" : puts "BBB"

>test.any? ? true : false
=> false

>test << 1
=> [nil, 1]

>test.any? ? true : false
=> true


>test.any? ? puts "AAA" : puts "BBB"
SyntaxError: (irb):14: syntax error, unexpected tSTRING_BEG, expecting keyword_do or '{' or '('
test.any? ? puts "AAA" : puts "BBB"
                  ^
(irb):14: syntax error, unexpected ':', expecting $end
test.any? ? puts "AAA" : puts "BBB"
                        ^
4

1 に答える 1

3

かっこが必要です。

>> test.any? ? puts("AAA") : puts("BBB")
BBB
=> nil

インライン関数での括弧なしの呼び出しは避けてください。

于 2012-10-16T00:40:09.023 に答える