as?
The as?
pseudo-method is similar to as
, except that it returns nil
instead of raising an exception when the type doesn't match. It also can't be used to cast between pointer types and other types.
Example:
value = rand < 0.5 ? -3 : nil
result = value.as?(Int32) || 10
value.as?(Int32).try &.abs
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/as_question.html