Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 为什么允许最终变量更改其值? void main(){ 最终数值=[]; 数量增加(1); 打印(num); }_Dart - Fatal编程技术网

Dart 为什么允许最终变量更改其值? void main(){ 最终数值=[]; 数量增加(1); 打印(num); }

Dart 为什么允许最终变量更改其值? void main(){ 最终数值=[]; 数量增加(1); 打印(num); },dart,Dart,输出 1 如果初始化了final变量,则无法更改它,但为什么它允许我更改值,而不允许我重新指定值,如num=5?通过调用 final nums=[] 您创建了一个动态类型的空列表 此列表本身是最终列表,您无法重新分配它 但是,您可以轻松地将新项目添加到列表中,因为这只是列表中的一个方法 换句话说,使一个变量final意味着它不能被重新分配,但并不意味着它不能更改 最后一个变量只能设置一次 请参阅以了解更多信息 一个重要的注意事项是Dart中的类可能是双精度或整数,因此将其用作变量名不是一个

输出

1
如果初始化了
final
变量,则无法更改它,但为什么它允许我更改值,而不允许我重新指定值,如
num=5

通过调用

final nums=[]

您创建了一个动态类型的空列表

此列表本身是最终列表,您无法重新分配它

但是,您可以轻松地将新项目添加到列表中,因为这只是列表中的一个方法

换句话说,使一个变量
final
意味着它不能被重新分配,但并不意味着它不能更改

最后一个变量只能设置一次

请参阅以了解更多信息


一个重要的注意事项是Dart中的类可能是双精度或整数,因此将其用作变量名不是一个好的做法。

这是否回答了您的问题?因为该变量是最终的,您不能将其更改为不同的数组-但数组本身是可变的,您可以更改其内部状态(例如添加元素)