这个问题在这里已有答案:
超级和关键词在飞镖课中做了什么?一个例子是下面的代码:
class CardTitle extends StatelessWidget {
final String title;
const CardTitle(this.title, **{Key key}**) : **super(key: key)**;
super
用于调用基类的构造函数。所以在你的例子中,CardTitle
的构造函数正在调用StatelessWidget
的构造函数。
Key
是Flutter中用于识别小部件的类型,并允许Flutter知道在树中移动的小部件何时与先前位于不同位置的小部件相同。这里有关于键的好视频:https://www.youtube.com/watch?v=kn0EOS-ZiIc
密钥用作Widgets,Elements和SemanticsNodes的标识符。您不需要在大多数时间使用密钥,框架会为您处理密钥并在内部使用它们来区分窗口小部件。有关他们的更多信息,请参阅:https://flutter.dev/docs/development/ui/widgets-intro#keys
至于Super关键字:
我们在您的示例中看到CardTitle小部件扩展了超类statelesswidget,并且在其构造函数中,“:”启动“初始化列表”,这是一个逗号分隔的表达式列表,在超类的构造函数之前执行,因此也在构造函数体之前执行。
在您的问题的示例中,传递给构造函数的key参数被转发到超类的未命名构造函数的命名参数键。