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 回答