flutter - 空安全和 map

标签 flutter dart dart-null-safety

您如何处理以下情况:

void main() {
  print(getInt('d'));
}

Map<String, int> myMap = {'a':1, 'b':2, 'c':3};

int getInt(String key) {
  if (!myMap.containsKey(key)) {
    myMap[key] = 0;
  }
  return myMap[key]!; 
}
myMap[key]永远不会为空,但如果我删除 !return myMap[key]!;我得到空安全错误:

A value of type 'int?' can't be returned from the function 'getInt' because it has a return type of 'int'.


! 抛弃可空性是否合适? ,或者有更干净的方法吗?

最佳答案

不知道清洁剂是什么意思,还有 !存在是有原因的。
您可以将 if 语句简化为一行:

int getInt(String key) {
  myMap[key] ??= 0;
  return myMap[key]!; 
}

关于flutter - 空安全和 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66603650/

相关文章:

flutter - 突出显示 DropdownButton 中的选定值(如 PopupMenuButton)

flutter - 如何在列内添加包装 future builder

google-maps - 在 google_maps_flutter 中获取可见标记

flutter : Conditions must have a static type of 'bool'

flutter - 如何在启用 nullsafety 的情况下从 swagger json 生成 dart 客户端?

android - 如何将消息从 Flutter 传递到 Native?

flutter - Flutter从父亲那里触发小部件内部的函数

dart - 在 Flutter 中显示 SnackBar

dart - 如何在空安全 Dart 中将 List<String?> 转换为 List<String>?

Flutter 国际化,国际代码生成不起作用