2016-04-05 9 views
3

Was bedeutet !! in der folgenden Methode bedeuten?!! (double bang) Bedeutung in Ruby

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

Es heißt Double Bang (!!). –

+0

'!!' wandelt "truthy" Werte (alles andere als "nil" und "false") in "true" und "falsy" Werte ('nil' oder' false') in 'false' um. '!! x' bedeutet'! (! x) '. Wenn "x" truthy ist, ist "! X" "false"; Wenn "x" falsch ist, ist "! x" wahr. Das erste '!' Flippt 'false' dann zu' true' und 'true' zu' false'. Zum Beispiel: '!! 7 =>! (! 7) =>! False => true' und' !! nil =>! (! Nil) =>! True => false'. –

+0

Sie haben eine letzte Frage gelöscht, werfen Sie einen Blick [hier] (https://jsfiddle.net/m9gmjc2w/);) –

Antwort

6

Es wirft eine Variable in den Typ boolean und bestimmen seine truthy oder falsy Wert

Zum Beispiel: -

# 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

Es hilft Ihnen, boolesche Ergebnisse zu erhalten.

Beispiel:

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

Ähnlich

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

Der Doppelgänger Ausrufezeichen konvertiert das Ergebnis in einen booleschen Wert, so dass in diesem Fall @assication.include?(record)nil zurückgibt, das in false konvertiert wird.