Flutter 构造函数后面的冒号 colon

7 min read

flutter构造函数后的冒号的作用是初始化,注意以下几点:

1)不同于构造函数内部,这里不能使用this;

2)这里的初始化可以是多个语句,多个语句之间使用逗号,分隔;

3)这里可以调用父类构造函数,super();

4)这里是为final字段赋值;

5)可以使用assert检查参数

Spacer 源码

class Spacer extends StatelessWidget {
  const Spacer({Key? key, this.flex = 1})
    : assert(flex != null),
      assert(flex > 0),
      super(key: key);
  
  final int flex;

  @override
  Widget build(BuildContext context) {
    return Expanded(
      flex: flex,
      child: const SizedBox.shrink(),
    );
  }
}