不要将变量显式初始化为 null

liv*_*ove 4 dart

我试图弄清楚如何在构造函数中传递一个空参数,但我收到了这个错误:

不要将变量显式初始化为 null

class Dog {
  final id int;
  final String name;
  final int age;

  Dog({this.id=null, this.name, this.age});
}
Run Code Online (Sandbox Code Playgroud)

我不想将 id 传递给构造函数。我想像这样调用构造函数:

  var dog = Dog(
    name: 'Rex',
    age: 15,
  );
Run Code Online (Sandbox Code Playgroud)

我该如何实现?

Sis*_*sir 7

通过不明确分配给 null

class Dog {
  final id int;
  final String name;
  final int age;

  Dog({this.id, this.name, this.age});
}
Run Code Online (Sandbox Code Playgroud)

请记住,默认值id设置为null。因此,如果消费者不传递值,id它将继续拥有null,因此将继续拥有name

如果你想强制任何参数,那么你应该用 @required