Possible en double:
What does !! mean in ruby?Que fait !! some_object?
ce que cette fonction est en train de faire?
def current_product?
!!current_product
end
N'est-ce pas un double négatif?
Possible en double:
What does !! mean in ruby?Que fait !! some_object?
ce que cette fonction est en train de faire?
def current_product?
!!current_product
end
N'est-ce pas un double négatif?
!!
est essentiellement un casting à booléens. Si current_product
est truey, !current_product
est false
et !!current_product
est true
, et vice versa. C'est à dire. il convertit valeurs truey à true
et falsy valeurs à false
.
Il s'agit effectivement d'un cast/conversion en booléen.
question similaire, mais pour C++: Doube Negation in C++ code
également un poste assez décent à ce sujet ici: !! (The double bang/double not) in Ruby
C'est un modèle que vous verrez dans toutes les langues où chaque objet a une valeur de vérité, mais il y a des canoniques booléens (qu'ils soient appelés True
et False
, 1
et 0
, 1
et ""
, t
et nil
, peu importe). !!x
est essentiellement un "cast à booléen", en ce que !!x
a la même valeur de vérité que x
, mais !!x
sera toujours l'une des valeurs true/false canoniques, au lieu de toute ancienne valeur true/false.
Dupliquer de [Que fait !! signifie en ruby?] (http://stackoverflow.com/questions/524658/what-does-mean-in-ruby). –
La même chose, comme dans d'autres langues ... – Nakilon