Map.fromIterable 指定键/值提取 lambda 的参数类型

pet*_*ter 0 dart

鉴于此代码:

class Dog{
  String name = "Dog";
  int age = 2;
}

final list = [Dog(), Dog()]

final dogNameToAge = Map.fromIterable(
  list, key: (value)=> value.name, value: (value)=>value.age)
Run Code Online (Sandbox Code Playgroud)

“key”lambda 的类型是否String Function(dynamic)?有一种使用类似以下内容的方法:String Function(Dog)?这样它会更加类型安全?

lrn*_*lrn 5

您还可以使用地图文字来编写它:

final dogNameToAge = {for (var dog in list) dog.name: dog.age};
Run Code Online (Sandbox Code Playgroud)

fromIterables这是我每天的建议。