从 dart 中的对象访问列表

Tre*_*ree 5 dart

我来自 as3 环境,所以我是 dart 和 HTML 的大初学者。

我有这个变量

var symbols = [
               {"name":"first",
                 "num":[2,2,3]
               }];
Run Code Online (Sandbox Code Playgroud)

我想访问 num 数组并将其保存到变量中,我尝试这样做:

var symbol = symbols[0];
var num = symbol.num;
Run Code Online (Sandbox Code Playgroud)

我得到

Breaking on exception: Class '_LinkedHashMap' has no instance getter 'num'.
Run Code Online (Sandbox Code Playgroud)

你能帮我吗?

小智 6

你所拥有的是一个字符串到字符串的映射列表。你可以这样写类型:

List<Map<String, String>> symbols;
Run Code Online (Sandbox Code Playgroud)

所以自然你想要访问的是键“num”的值。你可以这样做:

symbols[0]['num']
Run Code Online (Sandbox Code Playgroud)

但它不会通过写入自动映射到实例变量:

symbol.num
Run Code Online (Sandbox Code Playgroud)

如果你有一个这样的类,上面的方法会起作用:

class Symbol {
    var num;
}
Run Code Online (Sandbox Code Playgroud)