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

后端 未结 6 1015
逝去的感伤
逝去的感伤 2020-12-04 23:49

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

if (routeinfo[\"no_route\"] == \"\" || routeinfo[\"no_route\"] == null || routeinfo[         


        
6条回答
  •  情深已故
    2020-12-05 00:29

    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

    • isEmpty checks for an empty String, but if routeinfo is null you can't call isEmpty on null, so we check for null with
    • ?. safe navigation operator which will only call isEmpty when the object is not null and produce null otherwise. So we just need to check for null with
    • ?? null coalescing operator

提交回复
热议问题