Smart casts

suggest change

If the compiler can infer that an object can’t be null at a certain point, you don’t have to use the special operators anymore:

var string: String? = "Hello!"
print(string.length)  // Compile error
if(string != null) {

// The compiler now knows that string can’t be null print(string.length) // It works now!

}
Note: The compiler won’t allow you to smart cast mutable variables that could potentially be modified between the null-check and the intended usage.

If a variable is accessible from outside the scope of the current block (because they are members of a non-local object, for example), you need to create a new, local reference which you can then smart cast and use.

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents