gpt4 book ai didi

dart - 在 Dart 中,List.unmodifiable() 和 UnmodifiableListView 有什么不同?

转载 作者:行者123 更新时间:2023-12-03 03:15:07 35 4
gpt4 key购买 nike

在 Dart 中,如果要创建不可修改的列表,可以使用 List.unmodifiable() 或 UnmodifiableListView

List<int> list = [1, 2, 3];
List<int> unmodifiableList = List.unmodifiable(list);
UnmodifiableListView unmodifiableListView = UnmodifiableListView(list);

这有什么不同?

最佳答案

List.unmodifiableList构造函数;它创建了一个新的 List目的。它创建了原始 List 的副本,并且该副本不能变异。变异原 List不会影响副本。UnmodifiableListView是原始 List 周围的包装器(“ View ”) ,并且原始不能通过 UnmodifiableListView 变异.原始突变 ListUnmodifiableListView中仍然可以观察到.
例如:

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]
}

关于dart - 在 Dart 中,List.unmodifiable() 和 UnmodifiableListView 有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61404551/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com