[英]What does mean of using the “{}” keyword in class constructor (Dart)?
如果这听起来像一个非常愚蠢的问题,我很抱歉,但它在 Dart 和 Flutter 中确实是新的。 在 Flutter 的示例中,我经常看到这样的构造函数:
class CalTable extends StatefulWidget {
// Constructor with initializer ( : )
CalTable({Key key}) : super(key: key);
@override
_CalTableState createState() => _CalTableState();
}
我知道 {} 是 MAP 还是 SET。 但是这里的 {} 到底是什么意思? 为什么它只用于传递一个值Key 键?
提前致谢
它与地图或集合无关,这是 Dart 标记命名参数的方式。
在您的特定情况下, CalTable({Key key})
意味着您有一个名为key
的参数。 它不是位置的,所以你不能只写CalTable(yourKey)
。 它的名字,你必须写CalTable(key: yourKey)
。 此外,除非另有说明,否则所有命名参数都是可选的,因此CalTable()
也是有效的。
也就是说,我鼓励您更新到 Dart 和 Flutter 的最新版本,因为您的示例太旧了,由于 null 安全性,它不会在今天的版本中编译。
请参阅参数的语言导览以了解有关命名参数的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.