Двоеточие после конструктора в 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
.