Flutter:如何处理“可选参数的默认值必须是常量”

Dal*_*lon 5 constructor class dart flutter dart-null-safety

我有一个像这样的简单课程:

class Restaurant{
  final String id;
  final String name;
  List<Serving> servingList;

  Restaurant({
    required this.id,
    required this.name,
    this.servingList = [], // ERROR
  });
}
Run Code Online (Sandbox Code Playgroud)

默认情况下,我想要一个空列表servingList,并稍后将对象添加到该列表中。但我收到错误消息The default value of an optional parameter must be constant. 我需要做什么?

我感谢每一个帮助,谢谢!

小智 14

其实答案就在错误之内。默认值应该是常量。

    class Restaurant{
  final String id;
  final String name;
  List<Serving> servingList;

  Restaurant({
    required this.id,
    required this.name,
    this.servingList = const [], // ERROR
  });
}
Run Code Online (Sandbox Code Playgroud)

您需要在方括号前添加“const”关键字。

  • 但是将 const 添加到空列表将使其成为不可修改的列表,这会限制您对列表进行更改,因为它已被标记为 const。你如何解决这个问题? (4认同)
  • 没有得到答复的事实令人震惊。Dart 作为一种语言还有很多不足之处。 (2认同)