【问题标题】:What does mean of using the “{}” keyword in class constructor (Dart)?在类构造函数 (Dart) 中使用“{}”关键字是什么意思?
【发布时间】:2021-08-18 11:37:50
【问题描述】:

如果这听起来像一个非常愚蠢的问题,我很抱歉,但它在 Dart 和 Flutter 中确实是新的。在 Flutter 的示例中,我经常看到这样的构造函数:

class CalTable extends StatefulWidget {

  // Constructor with initializer ( : )
  CalTable({Key key}) : super(key: key);

  @override
  _CalTableState createState() => _CalTableState();
}

我知道 {} 是 MAP 还是 SET。但是这里的 {} 到底是什么意思?又为什么用它来传达一个值 Key key?

提前致谢

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    它与地图或集合无关,这是Dart标记命名参数的方式。

    在您的具体情况下,CalTable({Key key}) 表示您有一个名为 key 的参数。它不是位置的,所以你不能只写CalTable(yourKey)。它的名字,你必须写CalTable(key: yourKey)。另外,除非另有说明,所有命名参数都是可选的,所以CalTable()也是有效的。

    也就是说,我鼓励您更新到最新版本的 Dart 和 Flutter,因为您的示例太旧了,由于 null 安全性,它无法在今天的版本中编译。

    请参阅language tour on parameters 了解有关命名参数的更多信息。

    【讨论】:

    • 非常感谢。我很不专心,我自己也猜到了
    猜你喜欢
    • 2017-01-01
    • 2015-05-12
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 2013-04-25
    相关资源
    最近更新 更多