三元运算符语法错误

0xS*_*ina 1 ruby

新的红宝石,探索teranary运营商.

这与预期一样:

5==5? "x" : "y"
Run Code Online (Sandbox Code Playgroud)

返回"x",因为ruby中的所有内容都是表达式.

但是,这不......

user.birthday? "x" : "y"
Run Code Online (Sandbox Code Playgroud)

假设检查生日是否为零,并返回相应的字符串.但它给了我一个语法错误:

syntax error, unexpected ':', expecting $end
user.birthday? "x" : "y"
                    ^
Run Code Online (Sandbox Code Playgroud)

这个声明与另一个声明有什么不同?

谢谢

Tre*_*arl 6

方法可以并且经常以红宝石中的问号结束.

user.birthday ? "x" : "y"
Run Code Online (Sandbox Code Playgroud)

  • @ 0xSina:将隐含的括号添加到`user.birthday?"x":"y"`你得到`user.birthday?("x":"y")`(根本没有任何意义). (2认同)