如果这听起来像是一个非常愚蠢的问题,我很抱歉,但这在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的最新版本,因为您的示例太旧了,由于零安全性,它不会在今天的版本中编译。
请参阅参数语言教程,了解有关命名参数的更多信息。