Flutter误差:不能将"String"类型的值赋给"int"类型的变量

wztqucjr  于 2023-02-25  发布在  Flutter
关注(0)|答案(3)|浏览(184)

有人能帮帮我吗?我不知道为什么不工作

main() {
  var students = [
    {'name': 'Mateus', 'grade': 9.9},
    {'name': 'Pedro', 'grade': 9.3},
    {'name': 'Paulo', 'grade': 8.7},
    {'name': 'João', 'grade': 8.1},
    {'name': 'Tiago', 'grade': 7.6},
    {'name': 'Bartolomeu', 'grade': 6.8},
  ];

  Function(Map) onlyName = (student) => students['names'];
  var names = students.map(onlyName);
  print(names);
}
68de4m5k

68de4m5k1#

出现此错误是因为students是Map类型的数组。在onlyNameMap函数中,您尝试获取位于索引“name”处的元素,但该元素无效。students[0]将有效。
但是你的逻辑还是错的。据我所知,你试图从你的Map上得到所有的名字。
你想要遍历元素,这就是为什么你定义了这个函数。参数student包含了当前的student。因为这是一个Map,你可以简单地调用student ['name'],这样它就会返回名字。

6yt4nkrj

6yt4nkrj2#

如果我没理解错的话你需要用

Function(Map) onlyName = (student) => student['name'];

去查名字。

xa9qqrwz

xa9qqrwz3#

因为你的名字模型中的分数是字符串,但是你插入了整数值。
您可以在""中插入值。
还有,你把名字定义错了。
必须在函数中将"names"更改为"name"
应为:
Function(Map) onlyName = (student) => students['name'];

相关问题