2012-03-12 134 views
0

可能重複:
What does !! mean in ruby?你能解釋一下嗎?做?

我找到了!在PayPal寶石這裏:https://github.com/tc/paypal_adaptive/blob/master/lib/paypal_adaptive/config.rb 像59

但我不明白它是什麼。

我知道了!意思不是,但!!沒有意義。

這裏的屏幕:http://tinyurl.com/7acklhr

+0

如果你知道'!(foo)'是什麼意思,那麼你應該能夠計算出什麼'!(!(foo))'意思:)這不是一個不同的操作符,只是同一個操作符應用兩次 – Gareth 2012-03-12 13:44:29

+0

你可能會嘗試谷歌搜索「紅寶石雙爆」 – 2012-03-12 13:46:44

回答

1

它用於確定它的布爾類型。

Explanation more detailed

例如:

!!活性 =>真

活性=假 =>假

!!活性 =>假

活性=零 =>零

!!活性 =>假

4

它迫使任何價值truefalse取決於它的「truthy」性質。

這僅僅是因爲,正如你所指出的,!是布爾運算符。例如:

t = 1 
puts !t # => false 
puts !!t # => true 
f = nil 
puts !f # => true 
puts !!f # => false 
0

這會迫使結果爲真或假。正如在紅寶石nil不完全是假的,這可能是有用的。例如:

def try x 
    if x == 1 
    return nil 
    else 
    return "non-nil" 
    end 
end 

p "try1" if try(1) # here you get a string printed 
p "try2" if !!try(1) # here you don't 
4

!!用於上的東西,返回返回要麼truefalse任何東西:

在Ruby ,除nilfalse之外的所有內容都被解釋爲true。但它不會返回true,它會返回值。 所以,如果你使用!,你會得到truefalse,但實際上是相反的值。 如果您使用!!,則會得到相應的值truefalse

相關問題