似乎如果我将代码放入我的三元评估中,它就会失败,但放置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"
^
答案 0 :(得分:3)
你需要括号。
>> test.any? ? puts("AAA") : puts("BBB")
BBB
=> nil
你应该避免在内联函数中使用无括号调用。