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:

  1. value = rand < 0.5 ? -3 : nil
  2. result = value.as?(Int32) || 10
  3. value.as?(Int32).try &.abs