2012-10-03 92 views
-3

在JavaScript中,我可以寫赫然表現:是否有等價於JavaScript的'||'在Ruby中?

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

是否有任何Ruby相當於短表達?

+0

是不一樣的? [看這裏](http://invisibleblocks.com/2007/06/11/rubys-other-ternary-operator/) – macino

+7

-1它在Ruby中的工作方式完全相同。恕我直言,人們應該先詢問之後再嘗試,特別是考慮到Ruby有一個很好的REPL(irb)。 – fresskoma

回答

5

我很少使用紅寶石,但它應該幾乎完全相同。

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

這是完全一樣的,以紅寶石:

def test(x) 
    puts x 
end 

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

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

您也可以使用同樣的技術時沒有初始化它初始化變量:

var ||= 'data' 
+0

只是一個側面說明:不幸的是,你不能在javascript中執行'somevar || ='data''。 –

相關問題