以下两个代码的输出相同,但是本质区别是什么?
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] 删除。
我来说两句