假设我有一个类ListContainer
,它包含并管理一个必须从外部访问的列表。由于管理这个列表很复杂,我不想让ListContainer
以外的任何人修改它。在c++中,我会创建一个返回const引用的函数,但在Dart中,const的工作方式完全不同。仅仅使用getter并不能阻止别人修改列表。
那么如何在不允许修改列表的情况下提供对列表值的访问呢?
我正在寻找比创建getNth
函数更好的东西,因为这也需要创建length
,map
等方法。
我想UnmodifiableListView
就是你要找的。
查看unmodiableelistview文档
你可以这样使用:
List<int> _myList = [1, 2, 3];
UnmodifiableListView<int> get myList => UnmodifiableListView(_myList);