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(), ); } }