Часть после :
называется "списком инициализатора". Это разделенный ,
список выражений, который может обращаться к параметрам конструктора и может назначать полям экземпляра, даже final
полям экземпляра. Это удобно для инициализацииконечные поля с вычисленными значениями.
Список инициализаторов также используется для вызова других конструкторов, таких как : ..., super('foo')
.
Поскольку в версии 1.24 для Dart список инициализаторов также поддерживает assert(...)
, что удобно дляпроверьте значения параметров.
Список инициализаторов не может быть прочитан из this
, потому что супер-конструкторы должны быть завершены до того, как доступ к this
будет действительным, но он может быть присвоен this.xxx
.
Указание, как упомянуто в комментариях пользователя 693336:
Это также означает, что список инициализатора выполняется перед телом конструктора.Также списки инициализатора всех суперклассов выполняются перед выполнением любого из тел конструктора.