如何在 Dart 中创建 "constant reference" getter?

How to create a "constant reference" getter in Dart?

假设我有一个 class ListContainer,其中包含并管理一个必须可从外部访问的列表。由于管理此列表很复杂,我不想让 ListContainer 以外的任何人修改它。在 C++ 中,我会创建一个 returns const 引用的函数,但在 Dart 中,const 的工作方式完全不同。仅使用 getter 不会阻止其他人修改列表。

那么如何在不允许修改列表的情况下提供对列表值的访问?

我正在寻找比创建 getNth 函数更好的方法,因为这还需要创建 lengthmap 等方法。

我想 UnmodifiableListView 就是您要找的。

查看 UnmodifiableListView Documentation

你可以这样使用它:

List<int> _myList = [1, 2, 3];
List<int> get myList => UnmodifiableListView(_myList);