Equivalent of if let and guard let of Swift in Dart

Issue

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

Solution

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, so for those you would need to explicitly introduce a local reference. (There is a language proposal to provide a mechanism to allow a nicer mechanism to add a local reference without polluting the outer scope.)

Answered By – jamesdlin

Answer Checked By – Cary Denson (FlutterFixes Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *