flutter中如何防止map取出空值?

码云
2020-10-28 14:07

flutter/dart中的map如果key不存在的时候会取到null,可以通过以下两个方式来避免这个问题:

1)通过??判断是否为null,如果是则使用默认值,代码示例如下:

var map = {
  'a': 1,
  'b': 2,
};
var cValue = map['c'] ?? 3;

 

2)扩展map的方法,增加空值判断,代码示例如下:

//扩展一个新方法getOrElse
extension DefaultMap<K,V> on Map<K,V> {
  V getOrElse(K key, V defaultValue) {
    if (this.containsKey(key)) {
      return this[key];
    } else {
      return defaultValue;
    }
  }
}

var map = {
  'a': 1,
  'b': 2,
};
var cValue = map.getOrElse('c', 3);

 

全部评论