【发布时间】:2017-04-28 13:36:43
【问题描述】:
如果我们以下面的sn-p为例:
main() {
List<int> array = [1, 2, 3, 4];
List<int> newArray = change(array);
print(array); // [99, 2, 3, 4]
print(newArray); // [99, 2, 3, 4]
print(newArray == array); // true
}
change(List<int> array) {
var newArray = array;
newArray[0] = 99;
return newArray;
}
原始数组发生变异。我期待通过将数组(对象)传递给更改函数并为其分配一个新变量,我可以避免突变。我知道built_collection library 似乎是不可变集合的主要选择。核心库是否有任何原生方式可以允许深度冻结或防止副作用(另一个函数内部的操作)?
【问题讨论】:
标签: object dart immutability mutation