当前位置: 首页 > 知识库问答 >
问题:

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

爱乐邦
2023-03-14

如果这听起来像是一个非常愚蠢的问题,我很抱歉,但这在《飞镖与颤栗》中是一个全新的问题。在颤振示例中,我经常看到这样的构造函数:

class CalTable extends StatefulWidget {

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

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

我知道什么{}是MAP或SET。但是{}在这里到底是什么意思?为什么它只用于传达一个值Key键?

提前谢谢

共有1个答案

李经国
2023-03-14

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

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

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

有关命名参数的详细信息,请参见参数语言教程。

 类似资料:
  • 问题内容: $(‘button’).click(function () { 我的问题:尽管我打了个电话,为什么它仍然会提醒下一个号码?就像:忽略下面的代码,然后继续下一个元素 问题答案: 除了引发异常外,没有其他方法可以停止或中断循环。如果您需要这种行为,该方法是错误的工具。 提前终止可以通过以下方式完成: 一个简单的循环 一… 圈 另一个阵列的方法:,,,和测试使用谓词返回truthy值的数组元

  • 问题内容: 乔什·布洛赫(Josh Bloch)在“ 有效的Java ”项目“项目22:相比于非静态偏爱静态成员类”中,说: 非静态成员类的每个实例都与其包含类的封闭实例隐式关联。在非静态成员类的实例方法中,可以使用限定的this构造在封闭实例上调用方法或获取对封闭实例的引用。 他所说的“ 合格的结构” 是什么意思? 问题答案: 没有限定词,将递归。使用限定符时,将调用封闭实例的方法。

  • 问题内容: 当我们创建扩展抽象类的Subclass对象时,抽象类构造函数也会运行。但是我们知道我们不能创建抽象类的对象。因此,这是否意味着即使构造函数无任何例外地完成运行,也不能保证是否创建了对象吗? 问题答案: 因此,这是否意味着即使构造函数无任何例外地完成运行,也不能保证是否创建了对象吗? 简而言之,a 不会创建对象。它只是 初始化 对象的 状态 。创建对象的是操作员。现在,让我们详细了解一下

  • 问题内容: 在Swift中,协议从class关键字继承意味着什么? 例如 问题答案: 红蜘蛛 的答案的要旨是正确的,但它错过了我认为很重要的原因_ 。它取决于ARC和内存管理。 Swift是引用类型和值类型的语言。类_是引用类型,而其他所有类型都是值类型。实际上,我们并没有真正指定该协议是从… _继承 而来的,更像是我们指定该协议只能由 引用类型 实现。 为什么这么重要? 这很重要,因为没有它,我

  • 问题内容: 我正在使用Facebook库,其中包含以下代码: 函数定义开头的&是什么意思,以及如何使用这样的库(在一个简单的示例中) 问题答案: 函数名称前的与号表示函数将返回对变量的引用,而不是值。 当您想使用函数查找引用应绑定到哪个变量时,按引用返回很有用。不要使用引用返回来提高性能。引擎将自动自动优化它。仅在有充分的技术理由时才返回引用。

  • 问题内容: 我刚刚看到一个成员函数,如下所示: 但是Cat是这样的接口: 因此,我对如何解释这一点感到困惑。我知道什么东西返回一个对象或原语是什么意思。但是返回接口意味着什么?如何使用此函数的返回值? 问题答案: 考虑一下这种方式:如果在常规类的哪里,当您想在其上调用某些方法时,您 究竟 在乎什么呢? 您会关心方法定义:它们的名称,它们的参数类型,它们的返回值。你 并不 需要关心实际的实现! 由于