我得到以下错误
类型"int"不是"value"的类型"Null"的子类型
使用此代码剪切
Map<String, dynamic> test = {
"meta": {
"age": null,
"gender": null,
"height": null,
"weight": null,
},
"test": "test"
};
test["meta"]["age"] = 20;
当我已经指定test["meta"]
是动态的时,为什么dart认为test["meta"]["age"]
具有类型Null
?
如何在不必进一步键入Map的情况下为test["meta"]["age"]
分配一个整数值?
地图的类型由您在其中输入的内容决定。是的,对于地图Test
,我们根据提供的类型提示获得正确的地图类型。但内部Map
定义为:
{
"age": null,
"gender": null,
"height": null,
"weight": null,
}
不附带任何类型提示。因此Dart将根据初始化时提供的值自动确定此Map
的类型。
您可以在此处强制执行以下操作:
Map<String, dynamic> test = {
"meta": <String, dynamic>{
"age": null,
"gender": null,
"height": null,
"weight": null,
},
"test": "test"
};