在类构造函数(Dart)中使用"{}"关键字意味着什么



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

class CalTable extends StatefulWidget {
// Constructor with initializer ( : )
CalTable({Key key}) : super(key: key);
@override
_CalTableState createState() => _CalTableState();
}

我知道它是MAP还是SET。但{}在这里究竟是什么意思?为什么它只用于传递一个值密钥?

提前感谢

它与映射或集无关,它是Dart标记命名参数的方法。

在您的特定情况下,CalTable({Key key})表示您有一个名为key的参数。它不是定位的,所以不能只写CalTable(yourKey)。它被命名了,你必须写CalTable(key: yourKey)。此外,除非另有指定,否则所有命名参数都是可选的,因此CalTable()也将有效。

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

请参阅参数语言教程,了解有关命名参数的更多信息。

最新更新