Thi*_*rry 5 dart flutter 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]!;
}
Run Code Online (Sandbox Code Playgroud)
myMap[key]永远不会为空,但如果我删除 of ,!则会return myMap[key]!;出现空安全错误:
“int”类型的值?无法从函数“getInt”返回,因为它的返回类型为“int”。
用 抛弃可空性是否正确!,或者是否有更干净的方法?
不确定清洁剂是什么意思,但它的!存在是有原因的。
您可以将该 if 语句简化为一行:
int getInt(String key) {
myMap[key] ??= 0;
return myMap[key]!;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5476 次 |
| 最近记录: |