Dart中的构造方法和初始化方法列表有什么区别?

OK良介

问题

以下两个代码的输出相同,但是本质区别是什么?

Dart语言之旅-初始化程序列表

import 'dart:math';

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

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

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

我的密码

  Point(this.x, this.y)
      : distanceFromOrigin = sqrt(x * x + y * y);

两个输出都相同5。

  • 我应该如何正确使用构造函数和初始化列表?

开发环境

最好的祝福,

地狱战士

没什么区别,除了可以利用不同类型的构造函数之外,结果将相同。

如果您不想公开在Point中定义的变量并将其标记为私有,那么初始化器将是一个不错的选择。

    class Point {
      final num _x;
      final num _y;
      final num _distanceFromOrigin;

      Point(x, y)
          : _x = x,
            _y = y,
            _distanceFromOrigin = sqrt(x * x + y * y);
    }

还可以看看带有可选参数的构造函数或工厂构造函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

RobertaTokenizer()和初始化RobertaTokenizer的from_pretrained()方法有什么区别?

在 Java 中,两种 String 初始化方法有什么区别?

对象初始化程序和构造函数有什么区别?

骨干模型上的初始化和构造函数有什么区别

类C,构造函数和统一初始化之间有什么区别?

使用初始化列表初始化字段并在构造函数内部对其进行初始化之间有什么区别?

在 C++11/17 中的类初始化和直接初始化中。有什么区别?

所需的初始化程序和指定的初始化程序有什么区别?

用=初始化和{}初始化之间有什么区别?

使用ori和addi在MIPS中初始化值之间有什么区别?

应用程序初始化程序和ember中的服务有什么区别?

R S4初始化函数中的“ .Object”和“ object”有什么区别?

如何在c中全局初始化变量,静态和外部有什么区别?

核心数据:insertNewObject与指定的初始化方法有什么区别

在 C++ 中使用和不使用构造函数调用初始化对象有什么区别

快速初始化和便捷实例之间的便利初始化与初始化之间有什么区别

非初始化和初始化为null有什么区别?

Dart列表中的firstWhere()和indexWhere()有什么区别

在构造函数内外初始化实例变量之间有什么区别?

使用构造函数初始化类实例与赋值之间有什么区别吗?

除了语法之外,将初始化方法编写为实例方法还是类方法之间有什么区别?

在main方法或初始化构造函数中,更有效的初始化是什么?

C++11/17 中 std::atomic 的间接和直接初始化。有什么区别?

Java中通过new String()和new String(“”)进行的String初始化之间有什么区别?

在函数中返回指向被调用的int的指针和返回已初始化的int的地址之间有什么区别?

{x}和'= {x}'初始化之间有什么区别(如果有)?

Dart 中的“is”和“==”有什么区别?

初始化方法中返回指针和值的区别

变量初始化有什么区别?