flutter - Dart/Flutter super (key:key)示例

标签 flutter dart

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

  MyHomePage({Key key, this.title}) : super(key: key);

这与编写以下内容是否相同:
MyHomePage(Key key, String title) {
     super(key);
     this.title = title;
}

此外,我知道第一个':'将启动初始化程序列表,或者必须在手边的构造函数之前调用的函数-在这种情况下为“MyHomePage”。

在任何情况下,除了-或- super 以外,还有其他功能吗?

最佳答案

对于第一个问题:

不,因为 super 类已经构建,所以它不起作用,并且您会收到此错误:The expression doesn't evaluate to a function, so it can't be invoked
对于第二个问题:

除了初始化字段和调用父类(super class)的构造函数外,在开发过程中还将在初始化器列表中使用断言(请参见何时工作here),例如:

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

关于flutter - Dart/Flutter super (key:key)示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61968038/

相关文章:

flutter - 如何使用 crossAxisAlignment 中心覆盖父级列中使用的子级文本对齐方式?

ios - Flutter Firebase Auth with Apple 不会注销

flutter - 如何将延迟加载添加到此列表?

flutter - 如何在 Flutter Web 中保存到 Web 本地存储

dart - Dart 的目标是在编译非 dart 目标方面取代 Haxe 吗?

android - Flutter 医生找不到 sdkmanager

flutter - 如何获取 token 并在Flutter的另一个页面中使用

flutter - 将十六进制字符串转换为整数列表

dart - NNBD:字符串和空值的最小上限

flutter - 如何防止键盘向上移动堆栈中的其他小部件? ( flutter )