我是开发者。
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);
}
我想知道冒号只是用于缩写还是其他。
答案 0 :(得分:1)
它是初始化器。 它接受用逗号分隔的表达式列表,这些表达式使用参数初始化字段。
有时我们必须在初始化时调用超级构造函数 注意:super(...)必须始终是初始化程序中的最后一个调用。
如果我们需要添加更多类型的复杂防护(而不是类型)来防御格式错误的机器人,则可以使用assert。