flutter-dart 组件构造函数介绍

4,404 阅读1分钟

flutter 组件构造函数

类的构造函数是用来创建类实例。

image

dart中的构造函数看起来比较复杂,下面我们解析一个flutter组件的构造函数:

  • const 构造函数

  • 可选参数、命名参数

    构造函数特殊的函数,所以dart函数中知识同样适用。如图所示,参数在一个大括号中,这些都是可选参数。而且除了Key key 参数,其他都是简写,下面介绍。

  • 参数赋值语法糖

    this.appBar 都是简写:

    展开如下:

    PreferredSizeWidget appBar ,但是要在构造函数体中,将参数复制给实例变量。

    如下是官方的例子解释:

    class Point {
      num x, y;
      Point(num x, num y) {
        this.x = x;
        this.y = y;
      }
    }
    
    class Point {
      num x, y;
      Point(this.x, this.y);
    }
    

    参考

    • https://www.dartlang.org/guides/language/language-tour#constructors
  • 参数默认值

    这是参数复制和参数默认值设置综合的效果:

    如果展开如下:

    bool resizeToAvoidBottomPadding:true
    

    参考

    • https://www.dartlang.org/guides/language/language-tour#optional-parameters
  • 初始化列表和输入校验

    在括号之后是一个冒号,在冒号之后是一个用逗号分开的列表,其中包括三部分内容,

    • 对输入参数的校验

    • 对实例变量的初始化,当前类没有。主要初始化实例变量

      image
      : fontFamily = package == null ? fontFamily : 'packages/$package/$fontFamily',

      package为参数,fontFamily为实例变量,初始化。

    • 父类构造函数的调用

  • 父类函数调用

    在初始化列表的末尾,构造函数函数体的开始,调用父类的构造函数。

  • https://www.dartlang.org/guides/language/language-tour#optional-parameters