在Dart中,如果要创建不可修改的列表,则可以使用List.unmodifiable()或UnmodifiableListView
List<int> list = [1, 2, 3];
List<int> unmodifiableList = List.unmodifiable(list);
UnmodifiableListView unmodifiableListView = UnmodifiableListView(list);这有什么不同吗?
发布于 2020-04-24 09:03:13
List.unmodifiable是一个List构造函数;它创建一个新的List对象。它创建原始List的副本,并且该副本不能被更改。更改原始List不会影响副本。
UnmodifiableListView是一个围绕原始List的包装器(“视图”),而原始的List不能通过UnmodifiableListView进行变异。在List中仍然可以观察到原始UnmodifiableListView的突变。
例如:
import 'dart:collection';
void main() {
var originalList = [1, 2, 3];
var unmodifiableCopy = List<int>.unmodifiable(originalList);
var unmodifiableView = UnmodifiableListView(originalList);
originalList[0] = -1;
print('$unmodifiableCopy'); // Prints: [1, 2, 3]
print('$unmodifiableView'); // Prints: [-1, 2, 3]
}https://stackoverflow.com/questions/61404551
复制相似问题