Колон после Конструктора в дротике - PullRequest
0 голосов
/ 10 мая 2018

Этот код взят из флаттер-галереи, и я пытаюсь понять и адаптировать его.Я бы знал, что означает этот синтаксис:

class DemoItem<T> {
  DemoItem({
    this.valueName,
    this.hintName,
    this.valueSurname,
    this.hintSurname,
    this.builder,
    this.valueToString

  }) : textController = new TextEditingController(text: valueToString(valueName));

Особенно я бы знал , что означает двоеточие после конструктора , и если есть способ определить другой TextEditingController, в дополнение к одномууже определено.

1 Ответ

0 голосов
/ 10 мая 2018

Часть после : называется "списком инициализатора". Это разделенный , список выражений, который может обращаться к параметрам конструктора и может назначать полям экземпляра, даже final полям экземпляра. Это удобно для инициализацииконечные поля с вычисленными значениями.

Список инициализаторов также используется для вызова других конструкторов, таких как : ..., super('foo').

Поскольку в версии 1.24 для Dart список инициализаторов также поддерживает assert(...), что удобно дляпроверьте значения параметров.

Список инициализаторов не может быть прочитан из this, потому что супер-конструкторы должны быть завершены до того, как доступ к this будет действительным, но он может быть присвоен this.xxx.

Указание, как упомянуто в комментариях пользователя 693336:

Это также означает, что список инициализатора выполняется перед телом конструктора.Также списки инициализатора всех суперклассов выполняются перед выполнением любого из тел конструктора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...