2012-03-12 15 views
0

可能性の重複:
What does !! mean in ruby?あなたは何かを説明できますか!行う?

私が見つかりました! Paypalの宝石のここに:https://github.com/tc/paypal_adaptive/blob/master/lib/paypal_adaptive/config.rb のような59

私はそれが何を理解しません。

私はそれを知っています! NOTを意味しますが、!!意味がありません。それは、その「truthy」性質に応じてtrueまたはfalseに任意の値を強制的にhttp://tinyurl.com/7acklhr

+0

'!(foo)'が意味することは、 '!(!(foo))'が意味することを意味するものであることを意味するものであることを意味します:)異なる演算子ではなく、同じ演算子を2回適用しました – Gareth

+0

グーグル "ルビーダブルバン" –

答えて

1

これはブール型を確認するために使用されます。

Explanation more detailed

例:

!!アクティブ =>真

アクティブ= falseを => falseを

!!アクティブ => falseを

アクティブ= nilの =>!!が何かを返す何かにtrueまたはfalseのいずれかを返すために使用され

!!アクティブ => falseを

4

はこちらの画面です。

これは、前述したように、!がブール演算子ではないためです。たとえば、

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

この結果、結果はtrueまたはfalseになります。ルビーのように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

ゼロ:

Rubyではnilおよびfalse以外はすべてtrueと解釈されます。しかし、それは真実を返しません、それは値を返します。 したがって、!を使用すると、trueまたはfalseが得られますが、実際の値とは逆の値になります。 !!を使用すると、trueまたはfalse相当の値が得られます。

関連する問題