частный именованный параметр в dart

#flutter #dart

#flutter #dart

Вопрос:

Я новичок в Dart. Допустим, у меня есть final List <Character> _characterList; , который должен быть частным. Но как мне использовать CharacterList ({Key key, this._characterList}): super (key: key); , если именованный параметр не может начинаться с _?

Ответ №1:

Имя параметра не зависит от имени элемента. Конструкторы предлагают this.name синтаксический сахар для удобства, если имена совпадают, но вам не обязательно это использовать. Вы можете присвоить параметру его собственное имя и явно инициализировать переменную-член отдельно:

 CharacterList({Key? key, required List<Character> characterList})
  : _characterList = characterList,
    super(key: key);

final List<Character> _characterList;
  

Ответ №2:

Это ограничение Dart

 Named optional parameters can't start with an underscore
  

Вместо этого вы можете использовать конструктор с необязательным позиционным параметром

 CharacterList (Key key, [this._characterList]): super (key: key)