红宝石的新手,探索teranary运营商。
这与预期一样:
5==5? "x" : "y"
返回“x”,因为ruby中的所有内容都是表达式。
但是,这不是......
user.birthday? "x" : "y"
假设检查生日是否为零,并返回相应的字符串。但它给我一个语法错误:
syntax error, unexpected ':', expecting $end
user.birthday? "x" : "y"
^
这个声明与另一个声明有什么不同?
由于
答案 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