Dart 在构造函数中定义属性

Dart 在构造函数中定义属性,dart,Dart,我正在尝试做一些其他面向对象语言的基本功能,但由于Dart的某些原因,我无法做到这一点。我是Dart新手,所以这个问题可能很愚蠢,但我在网上找不到任何答案 我有一个属性需要在构造函数上计算一次。这是我目前的代码: class Game { String _wordChosen; Game() { final _random = Random(); _wordChosen = WORDS[_random.nextInt(WORDS.length)]; } } 单词是

我正在尝试做一些其他面向对象语言的基本功能,但由于Dart的某些原因,我无法做到这一点。我是Dart新手,所以这个问题可能很愚蠢,但我在网上找不到任何答案

我有一个属性需要在构造函数上计算一次。这是我目前的代码:

class Game {
  String _wordChosen;

  Game() {
    final _random = Random();
    _wordChosen = WORDS[_random.nextInt(WORDS.length)];
  }
}
单词是在类外定义的列表。我的错误在游戏构造函数上:
未初始化\u不可为空\u实例\u字段

我不想将
\u wordselected
变量设置为默认值,因为这没有任何意义(它将在构造函数运行时被覆盖)。
我也不想再次将属性设置为可为null,这没有任何意义。

我认为答案是使用关键字late让编译器知道您将在使用变量之前初始化它,但现在不像下面那样

late String _wordChosen;
我认为这是你的解决方案,它在零安全文档中
我希望这个答案能帮助你

这个答案能回答你的问题吗?我遇到过这种解决方案,但它似乎并不自然,我希望找到一种更“自然”的解决方法,但可能没有。