繁体   English   中英

在 class 构造函数 (Dart) 中使用“{}”关键字是什么意思?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM