Двоеточие после конструктора в dart

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

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

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

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

спасибо заранее.

1 ответов


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

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

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

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