首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >飞镖/颤动超级(key:key)示例

飞镖/颤动超级(key:key)示例
EN

Stack Overflow用户
提问于 2020-05-23 13:51:34
回答 1查看 721关注 0票数 1

将此代码用作有状态小部件的构造函数:

代码语言:javascript
复制
  MyHomePage({Key key, this.title}) : super(key: key);

这是否与编写以下代码相同:

代码语言:javascript
复制
MyHomePage(Key key, String title) {
     super(key);
     this.title = title;
}

此外,我理解第一个':‘开始初始化器列表,或者在当前构造函数之前必须调用的函数--在本例中是"MyHomePage“。

有没有什么情况下,除了超级之外还有其他功能?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-23 16:12:43

对于第一个问题:

不,它不会工作,因为超类已经构造好了,你会得到这个错误:The expression doesn't evaluate to a function, so it can't be invoked

关于第二个问题:

除了初始化字段和调用超类的构造函数之外,在开发过程中还会在初始化器列表中使用断言(参见when it works here),例如:

代码语言:javascript
复制
import 'dart:math';

class Point {
  final num x;
  final num y;
  final num distanceFromOrigin;

  Point(x, y)
      : assert(x < y),
        x = x,
        y = y,
        distanceFromOrigin = sqrt(x * x + y * y);
}

main() {
  var p = new Point(2, 3);
  print(p.distanceFromOrigin);
}

参考:Language Tour - Initializer List

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61968038

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档