dartif-statementconditional-statementspattern-matching

Dart null / false / empty checking: How to write this shorter?


This is my code for true on everything but empty string, null and false:

if (routeinfo["no_route"] == "" || routeinfo["no_route"] == null || routeinfo["no_route"] == false) {
        // do sth ...
}

This is my code for true on everything but empty string, null, false or zero:

if (routeinfo["no_route"] == "" || routeinfo["no_route"] == null || routeinfo["no_route"] == false || routeinfo["no_route"] == 0) {
        // do sth...
}

How can I write this shorter in Dart? Or is it not possible?


Solution

  • If your requirement was simply empty or null (like mine when I saw this title in a search result), you can use Dart's safe navigation operator to make it a bit more terse:

    if (routeinfo["no_route"]?.isEmpty ?? true) {
      // 
    }
    

    Where

    If your map is a nullable type then you have to safely navigate that:

    if (routeinfo?["no_route"]?.isEmpty ?? true) {
      //
    }