gpt4 book ai didi

dart - 在 Dart 中调用嵌套字典

转载 作者:行者123 更新时间:2023-12-03 04:21:20 26 4
gpt4 key购买 nike

我想在flutter中使用嵌套的dict,因此我需要知道如何在dart中称呼它们。我创建了字典,
作为最后一个条目有一个小词典。

void main() {
var subdict = {'a':'Samba','b':'Tango','c':'FoxTrott','d':'Waltz'};

var diction = {'1':'Alpha','2':'Beta','3':'Gamma','4':subdict};

print(diction['4']);
}
使用 diction['4']调用此字典很容易,但是如何调用例如下级的“探戈”?
diction['4']['a']
似乎不起作用。

最佳答案

您的问题是Dart类型系统无法理解您的代码。 Dart将尝试猜测以下类型:

var diction = {'1':'Alpha','2':'Beta','3':'Gamma','4':subdict};
由于 map 中存在多种类型的对象,因此它将尝试为所有对象查找通用类。在这种情况下,此行将被编译为:
Map<String, Object> diction = {'1':'Alpha','2':'Beta','3':'Gamma','4':subdict};
然后,编译器将看到以下代码:
diction['4']['a']
由于映射的值的类型为 Object,因此编译器只能猜测 diction['4']的类型必须为 Object。由于 Object没有 []运算符,因此代码将在编译时失败。
如果要告诉编译器在运行代码之前它不关心类型的静态分析,可以将映射中值的类型设置为 dynamic,例如:
var diction = <String, dynamic>{'1':'Alpha','2':'Beta','3':'Gamma','4':subdict};
这样,将在运行时确定代码是否存在问题。但是,每次使用 dynamic时,您也会失去强类型系统的功能,这会冒着创建只能在运行时发现类型问题的代码的风险。

关于dart - 在 Dart 中调用嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62484806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com