有人可以解释这个Dart语法

问题描述 投票:7回答:2
class TapboxA extends StatefulWidget {

 TapboxA({Key key}) : super(key: key);

}

这部分 :

TapboxA({Key key}) 

下半场

super(key: key);

我明白了,(调用超类构造函数)。

但是什么是

{Key key}

语法呢?

syntax constructor dart
2个回答
6
投票

在Dart构造函数(和其他方法)中可以有可选的命名参数:

MyClass({String namedParam}){//...}

对于Flutter小部件构造函数:

TapboxA({Key key})  // TapboxA constructor defines a named parameters `key`
: super(key: key); //which is used within the super constructor call (which also has `key` as named parameter )

您可以找到有关 optional named parameters in the Dart language tour的更多信息


3
投票

Dart为构造函数提供了一个选项。默认情况下,当您使用构造函数实例化类时,您必须提供已定义的参数。

因此,TapboxA({Key key})意味着您可以在不提供参数的情况下实例化类。

© www.soinside.com 2019 - 2024. All rights reserved.