我有类似于此示例代码的代码(不要介意它没有意义):
void foo(Map<int, String> myMap) {
String s = myMap[1];
}
Run Code Online (Sandbox Code Playgroud)
dart 分析器向我发出有关该行的警告,String s = myMap[1];并显示以下警告:
“字符串?”类型的值 不能分配给“String”类型的变量。尝试更改变量的类型,或将右侧类型转换为“String”。
我看到这种情况正在发生,因为从地图中检索值可能会导致null. 为什么下面的代码片段给了我同样的警告?
void foo(Map<int, String> myMap) {
if (myMap.containsKey(1)) {
String s = myMap[1];
}
}
Run Code Online (Sandbox Code Playgroud)