if !
L'opérateur !
retourne un Bool
qui résulte de la négation de la véracité d'une valeur.
Quand utilisé dans un if
en conjontion avec une variable, is_a?
, responds_to?
ou nil?
le compilateur restreindra les types en conséquence:
a = une_condition ? nil : 3
if !a
# ici a est Nil parce-que a est faux dans cette branche
else
# ici a est Int32, parce-que a est vraie dans cette branche
end
b = une_condition ? 1 : "x"
if !b.is_a?(Int32)
# ici b est String parce-que ce n'est pas un Int32
end