案例 1
bool _privateBool = false;
final finalBool = _privateBool;
void main() {
_privateBool = true;
print(finalBool); ///==> true
}
变量是否finalBool
保存对的引用_privateBool
,以便当_privateBool
其发生变化时反映到finalBool
。
案例 2
bool _privateBool = false;
final finalBool = _privateBool;
void main() {
print(_privateBool.hashCode);
print(finalBool.hashCode);
_privateBool = true;
print(finalBool); ///==> false
}
在这种情况下,由于上面的2个打印语句(访问这些变量),值没有发生奇怪的变化。
案例 3
bool _privateBool = false;
final finalBool = _privateBool;
void main() {
_privateBool = true;
print(_privateBool.hashCode);
print(finalBool.hashCode);
print(finalBool); ///==> true
}
在这种情况下,即使访问了这些变量,但在分配之后,其值也会改变。