有没有相当于JavaScript'||'在Ruby?

时间:2012-10-03 16:24:34

标签: javascript ruby

在JavaScript中,我可以写得非常富有表现力:

console.log(foo.name || 'No Name');

是否有任何Ruby等同于该短表达式?

2 个答案:

答案 0 :(得分:5)

我很少使用红宝石,但它应该差不多相同。

>> name = false
=> false
>> puts name || "no name"
no name

答案 1 :(得分:1)

与Ruby完全相同:

def test(x)
  puts x
end

var = nil
test( var || 'No Name') #=> No Name

var = 'something'
test( var || 'No Name') #=> something

此外,您可以使用相同的技术在未初始化变量时初始化变量:

var ||= 'data'