puts bool ? "true" : "false"
是正确的,但是
bool ? puts "true" : puts "false"
不是。有人可以向我解释为什么会这样吗?
旁注:
bool ? ( puts "true" ) : ( puts "false" )
也可以。
答案 0 :(得分:5)
如果不将括号放在方法调用上,Ruby假定您希望行末的所有内容都成为参数。也就是说,这些调用是等效的(并且无效):
bool ? puts "true" : puts "false"
bool ? puts("true" : puts "false")