下面的类有多个参数,但只有一些需要是final;我的问题是,我是否也应该将这些最终变量设为私有(private),或者这样做是否多余?
class Car {
final double _galInFullTank;
get galInFullTank => _galInFullTank;
double _miDrivenToEmpty;
get miDrivenToEmpty => _miDrivenToEmpty;
double _mpg;
get mpg => _mpg;
void update(double newMiDrivenToEmpty) {
_miDrivenToEmpty = newMiDrivenToEmpty;
_mpg = _miDrivenToEmpty/_galInFullTank;
}
Car({galInFullTank = 12, miDrivenToEmpty = 300}) :
_galInFullTank = galInFullTank,
_miDrivenToEmpty = miDrivenToEmpty,
_mpg = miDrivenToEmpty/galInFullTank;
}
}
最佳答案
它有一些用例。它可用于向下转换变量。
例如,使用 RxDart 我们可以:
final BehaviorSubject<Foo> _foo;
Stream<Foo> get foo => foo;
这隐藏了实现细节。
它也可以用来在 getter 内部做额外的事情。例如,Mobx 使用它来了解使用了哪些值。
但是直接公开变量而不进行修改或额外计算是没有意义的。
关于class - 在 dart 中将 final 变量设为私有(private)是多余的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56781537/