飞镖构造函数中的冒号是什么意思?

时间:2019-12-03 05:31:12

标签: flutter dart

我是开发者。

InheritedCounter({
Key key,
@required this.counterState,
@required this.child
}) : assert(counterState != null), super(key: key, child: child);

在dart构造函数中,冒号(:)是什么意思? 我认为与下面的代码相同,对吧?

InheritedCounter({
Key key,
@required this.counterState,
@required this.child
}) {
   assert(counterState != null);
   super(key: key, child: child);
}

我想知道冒号只是用于缩写还是其他。

1 个答案:

答案 0 :(得分:1)

它是初始化器。 它接受用逗号分隔的表达式列表,这些表达式使用参数初始化字段。

有时我们必须在初始化时调用超级构造函数 注意:super(...)必须始终是初始化程序中的最后一个调用。

如果我们需要添加更多类型的复杂防护(而不是类型)来防御格式错误的机器人,则可以使用assert。