【发布时间】:2014-07-22 17:56:46
【问题描述】:
我想知道 if else 语法和 ?句法。我在网上看到一个例子,他们使用问号而不是 if else 语句。我知道 if 语句只能在一行上使用
return true if 4 > 3
而不是
if 4 > 3
return true
else
return false
end
但是,我对在这种情况下何时使用问号感到困惑。这是我在视频中看到的示例。
@date = params[:month] ? Date.parse(params[:month]) : Date.today
从表面上看,这似乎是 if else 语句的替代语法。但是,我以前从未见过它,也不知道它的作用。
我也知道方法可以以问号结尾,表示它应该像这样返回一个真值或假值
def is_multiple_of_4? (x)
return true if x % 4 == 0
end
但是,上面的语法是不同的。我很想知道这意味着什么,以及它与 if else 语句之间的区别。
【问题讨论】:
-
return true if 4 > 3与您给出的以下if..else示例不同。return true if 4 > 3没有else子句,如果条件不成立,也没有return。 -
这是我给出的布尔表达式。布尔表达式只能有两个可能的值(真和假)。如果一个值为真,那么默认情况下,另一个值必须为假。这是布尔表达式中唯一可能的值。
-
你指的是
return true if 4 > 3吗?这不是布尔表达式,没有隐含的false。这行字面意思是告诉 Rubyreturntrue以防 4 应该大于 3。如果 4 应该小于 3,它将根本没有。 -
我明白了。感谢您的澄清。
标签: ruby if-statement syntax conditional-operator