三元运算符语法错误

时间:2012-12-02 05:12:40

标签: ruby

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

这与预期一样:

5==5? "x" : "y"

返回“x”,因为ruby中的所有内容都是表达式。

但是,这不是......

user.birthday? "x" : "y"

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

syntax error, unexpected ':', expecting $end
user.birthday? "x" : "y"
                    ^

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

由于

3 个答案:

答案 0 :(得分:6)

方法可以并且经常以红宝石中的question mark结束。

user.birthday ? "x" : "y"

答案 1 :(得分:0)

在你的情况下user.birthday? ? 'x':如果你想检查生日是不是零/假,'''会做的。

答案 2 :(得分:-1)

ruby​​是一种面向对象的编程语言,因此所有方法定义都是从类继承而来的,就像“真实”一样,试试这个:

class User

def birthday(confirm)
    return true
end

end

us = User.new()

us.birthday("My birthday")

rep= us.birthday("My birthday") ? "x": "y"

def birthday(confirm) return true end