If we do our own null check (e.g., if (value != null)), the Kotlin compiler knows
that the value cannot be null. Therefore, it lets us make calls that
might not normally be allowed on nullable types. This "smart contract" system effectively
upgrades our type from a nullable type to a non-nullable one, while we are within a code
block where the compiler can guarantee that the object is not null.
You can learn more about this in:
Tags: