Flutter 嵌套映射是否可行?
我正在尝试创建贴图对象 我是dart新手,正因为如此,我尝试它就像在JS中一样,但这似乎是不正确的Flutter 嵌套映射是否可行?,flutter,dart,Flutter,Dart,我正在尝试创建贴图对象 我是dart新手,正因为如此,我尝试它就像在JS中一样,但这似乎是不正确的 Map<String, Map> superMap = new Map(); superMap["subMap"] = new Map(); superMap["subMap"].addAll(StringStringMap1); superMap["subMap"].addAll(StringStringMap2); 您的语法不惯用,但正确 您发布的代码有效(假设stringmap
Map<String, Map> superMap = new Map();
superMap["subMap"] = new Map();
superMap["subMap"].addAll(StringStringMap1);
superMap["subMap"].addAll(StringStringMap2);
您的语法不惯用,但正确 您发布的代码有效(假设
stringmap1
和stringmap2
是Map
对象)。我可以成功运行以下代码(如所述,您需要将代码包装在函数中,此处main
作为入口点):
main(){
地图超级地图=新地图();
超级地图[“子地图”]=新地图();
超级地图[子地图].addAll({1:2});
超级地图[子地图].addAll({2:2});
印刷(超级地图);
}
我想借此机会与您分享一些编写Dart代码的惯用方法:
- 您可以省略
,因为它不是必需的new
- 此外,您可以使用
literals来构建映射。开始时的空地图分配如下所示:Map
main() {
Map<String, Map> superMap = new Map();
superMap["subMap"] = new Map();
superMap["subMap"].addAll(StringStringMap1);
superMap["subMap"].addAll(StringStringMap2);
}
Map superMap={};
- 此外,对于以后未重新分配的变量,可以使用
关键字:final
final superMap={};//编译器可以根据指定的值推断类型。
- 使用
literal,您还可以将Map
的其他作业移动到原始作业中subMap
- 此外,您还可以展开其他地图,从而将
分配移动到原始分配addAll
main(){
最终的StringMap1={'1':'2'},StringMap2={'2':'2'};
最终超级地图={
“subMap”:{
…StringMap1,
…StringMap2,
}
};
印刷(超级地图);
}
以下代码没有问题:
Map<String, Map> superMap = new Map();
superMap["subMap"] = new Map();
superMap["subMap"].addAll(StringStringMap1);
superMap["subMap"].addAll(StringStringMap2);
因此,请检查您的stringmap1
和stringmap2
是否正确
但是我怀疑您没有在函数中创建代码。因此,请在main
中尝试您的代码,如下所示:
main() {
Map<String, Map> superMap = new Map();
superMap["subMap"] = new Map();
superMap["subMap"].addAll(StringStringMap1);
superMap["subMap"].addAll(StringStringMap2);
}
main(){
地图超级地图=新地图();
超级地图[“子地图”]=新地图();
超级地图[“子地图”].addAll(StringMap1);
超级地图[“子地图”].addAll(StringMap2);
}
请注意,在Dart中,代码的入口点是main()
函数。不能像在Javascript
中那样在函数外执行该行
main() {
Map<String, Map> superMap = new Map();
superMap["subMap"] = new Map();
superMap["subMap"].addAll(StringStringMap1);
superMap["subMap"].addAll(StringStringMap2);
}