私が見つかりました! Paypalの宝石のここに:https://github.com/tc/paypal_adaptive/blob/master/lib/paypal_adaptive/config.rb のような59
私はそれが何を理解しません。
私はそれを知っています! NOTを意味しますが、!!意味がありません。それは、その「truthy」性質に応じてtrue
またはfalse
に任意の値を強制的にhttp://tinyurl.com/7acklhr
私が見つかりました! Paypalの宝石のここに:https://github.com/tc/paypal_adaptive/blob/master/lib/paypal_adaptive/config.rb のような59
私はそれが何を理解しません。
私はそれを知っています! NOTを意味しますが、!!意味がありません。それは、その「truthy」性質に応じてtrue
またはfalse
に任意の値を強制的にhttp://tinyurl.com/7acklhr
これはブール型を確認するために使用されます。
例:
!!アクティブ =>真
アクティブ= falseを => falseを
!!アクティブ => falseを
アクティブ= nilの =>
!!
が何かを返す何かにtrue
またはfalse
のいずれかを返すために使用され!!アクティブ => falseを
:
はこちらの画面です。
これは、前述したように、!
がブール演算子ではないためです。たとえば、
t = 1
puts !t # => false
puts !!t # => true
f = nil
puts !f # => true
puts !!f # => false
この結果、結果は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
ゼロ:
Rubyではnil
およびfalse
以外はすべてtrue
と解釈されます。しかし、それは真実を返しません、それは値を返します。 したがって、!
を使用すると、true
またはfalse
が得られますが、実際の値とは逆の値になります。 !!
を使用すると、true
またはfalse
相当の値が得られます。
'!(foo)'が意味することは、 '!(!(foo))'が意味することを意味するものであることを意味するものであることを意味します:)異なる演算子ではなく、同じ演算子を2回適用しました – Gareth
グーグル "ルビーダブルバン" –