2016-04-05 1 views
3

!!の意味は次のとおりですか?!! Rubyでの意味(ダブルバン)

def include?(record) 
    [email protected]?(record) 
end 
+0

ダブルバン(!!)と呼ばれています。 –

+0

'!!' '真実 'の値(' nil'や 'false'以外のもの)を' true'や 'falsy'値(' nil'や 'false')に' false'に変換します。 '!! x'は'!(!x) 'を意味します。 'x'が真実なら'!x'は 'false'です。 'x'が偽であれば、'!x'は真です。最初の '!'は 'false'を' true'に、 'true'を' false'に反転します。たとえば、!!! =(!7)=>!false => true'と '!! nil =>!(!nil)=>!true => false'のようになります。 –

+0

最近の質問を削除しました。[こちら](こちら)(https://jsfiddle.net/m9gmjc2w/)) –

答えて

6

これはブール型に変数をキャストし、例えばそのtruthy又はfalsy値

を決定する: -

# Numbers... 
!!1 # => true 
!!0 # => false 

# Numbers as strings... 
!!'1' # => true 
!!'0' # => false 

# Truthy strings (case insensitive)... 
!!'true' # => true (alias: 't') 
!!'false' # => false (alias: 'f') 
!!'yes' # => false (alias: 'y') 
!!'no' # => false (alias: 'n') 

# Booleans... 
!!true # => true 
!!false # => false 

# Nil... 
!!nil # => false 
3

ブール値の結果を得るのに役立ちます。

例:

a = nil 
!a 
#=> true 
!!q 
#=> false 

同様

a = 1 
!a 
#=> false 
!!a 
#=> true 
0

ダブルこの場合、@assication.include?(record)nilを返すとfalseに変換されるように、感嘆符は結果をブール値に変換します。