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