Just started Flutter with native iOS background, so I just have a quick question about Dart beta null safety.
So in Swift, because they have the idea of null safety from the beginning just like Kotlin, there are 2 features that I really like about the language is if let
and guard let
. These 2 make working with optional values so much easier. I'm not sure if the beta version of Dart has anything like that.
Thanks
I'm not an expert on Swift, but Dart will use null checks to automatically promote types, and I think that mostly does the job of if let
and guard let
.
For example:
String? x = possiblyReturnsNull();
if (x != null) {
// All code within this block treats `x` as non-nullable.
}
// All code outside the block continues to treat `x` as nullable.
Note that promotion won't be performed on non-local variables or for instance variables that aren't both final
and private, so for those you would need to explicitly introduce a local reference.
As of Dart 3, you can use a null-check pattern to do the same without introducing that local variable to the outer scope:
if (possiblyReturnsNull() case var x?) {
// All code within this block treats `x` as non-nullable.
}
// `x` does not exist.