我发现!!在Paypal gem中:https://github.com/tc/paypal_adaptive/blob/master/lib/paypal_adaptive/config.rb 像59
但我不明白它的作用。
我知道!意思是不,但!!没有意义。
答案 0 :(得分:4)
它强制任何值true
或false
,具体取决于其“真实”性质。
这只是因为,正如您所指出的,!
是布尔运算符。例如:
t = 1
puts !t # => false
puts !!t # => true
f = nil
puts !f # => true
puts !!f # => false
答案 1 :(得分:4)
!!
用于在返回任何内容的内容上返回true
或false
:
在Ruby中,nil
和false
以外的所有内容都被解释为true
。但它不会返回true,它会返回值。
因此,如果您使用!
,则会获得true
或false
,但实际上是相反的值。
如果您使用!!
,则会获得true
或false
对应的值。
答案 2 :(得分:1)
用于确保其布尔类型。
例如:
!!活性 =>真
active = false =>假
!!活性 =>假
active = nil =>零
!!活性 =>假
答案 3 :(得分:0)
这会强制结果为真或假。因为在ruby中,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