Ruby三元运算符结构

3
puts bool ? "true" : "false"

是正确的,但

bool ? puts "true" : puts "false"

这不是正确的。有人能解释一下为什么吗?

顺便提一下:

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

也可以正常工作。


需要解释什么?这是显而易见的逻辑。 - Sam
1个回答

6

当你在方法调用时没有加上括号,Ruby会默认你想要将该行末尾的所有内容作为参数。也就是说,以下两种调用方式是等价且无效的:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接