Colon after Constructor in dart

后端 未结 2 1656
北海茫月
北海茫月 2020-11-29 00:30

This code is from flutter gallery and i\'m trying to understanding and adapting it. I would know what this syntax means:

class DemoItem {
  DemoItem         


        
2条回答
  •  伪装坚强ぢ
    2020-11-29 01:15

    The part after : is called "initializer list. It is a ,-separated list of expressions that can access constructor parameters and can assign to instance fields, even final instance fields. This is handy to initialize final fields with calculated values.

    The initializer list is also used to call other constructors like : ..., super('foo').

    Since about Dart version 1.24 the initializer list also supports assert(...) which is handy to check parameter values.

    The initializer list can't read from this because the super constructors need to be completed before access to this is valid, but it can assign to this.xxx.

    Pointing out as mentioned in the comments by user693336:

    This also means the initializer list is executed before the constructor body. Also the initializer lists of all superclasses are executed before any of the contructor bodies are executed.

提交回复
热议问题