1

Ruby 新手,探索三元运算符。

这正如预期的那样工作:

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

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

但是,这不...

user.birthday? "x" : "y"

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

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

这个陈述与另一个陈述有何不同?

谢谢

4

3 回答 3

5

在 ruby​​ 中,方法可以而且经常以问号结尾。

user.birthday ? "x" : "y"
于 2012-12-02T05:14:55.657 回答
0

在你的情况下user.birthday?? 'x' : 如果你想检查生日是否为 nil/false,'y' 会起作用。

于 2012-12-02T18:28:07.663 回答
-2

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

class User

def birthday(confirm)
    return true
end

end

us = User.new()

us.birthday("My birthday")

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

puts rep

于 2012-12-02T05:33:57.330 回答