if !
The !
operator returns a Bool
that results from negating the truthiness of a value.
When used in an if
in conjunction with a variable, is_a?
, responds_to?
or nil?
the compiler will restrict the types accordingly:
a = some_condition ? nil : 3
if !a
# here a is Nil because a is falsey in this branch
else
# here a is Int32, because a is truthy in this branch
end
b = some_condition ? 1 : "x"
if !b.is_a?(Int32)
# here b is String because it's not an Int32
end
To the extent possible under law, the persons who contributed to this workhave waived
all copyright and related or neighboring rights to this workby associating CC0 with it.
https://crystal-lang.org/reference/syntax_and_semantics/not.html