使用list.map函数时出现类型错误

时间:2019-01-09 09:17:22

标签: dart

在DartPad中运行以下代码时遇到类型错误。

void main() {
  List<int> list = [10, 20, 30];
  List<int> squares = list.map((x) => x * x);
  squares.forEach((x) => print(x));
}

出现以下错误

Uncaught exception:
TypeError: Instance of 'MappedListIterable<int, int>': 
type 'MappedListIterable<int, int>' is not a subtype of 
type 'List<int>'

这有什么问题吗?

1 个答案:

答案 0 :(得分:1)

List<int> squares = list.map((x) => x * x);

必须是

List<int> squares = list.map((x) => x * x).toList();

map()返回Iterable,而不是List