如何在 Dart 中创建 "constant reference" getter?
How to create a "constant reference" getter in Dart?
假设我有一个 class ListContainer
,其中包含并管理一个必须可从外部访问的列表。由于管理此列表很复杂,我不想让 ListContainer
以外的任何人修改它。在 C++ 中,我会创建一个 returns const 引用的函数,但在 Dart 中,const 的工作方式完全不同。仅使用 getter 不会阻止其他人修改列表。
那么如何在不允许修改列表的情况下提供对列表值的访问?
我正在寻找比创建 getNth
函数更好的方法,因为这还需要创建 length
、map
等方法。
我想 UnmodifiableListView
就是您要找的。
查看 UnmodifiableListView Documentation
你可以这样使用它:
List<int> _myList = [1, 2, 3];
List<int> get myList => UnmodifiableListView(_myList);
假设我有一个 class ListContainer
,其中包含并管理一个必须可从外部访问的列表。由于管理此列表很复杂,我不想让 ListContainer
以外的任何人修改它。在 C++ 中,我会创建一个 returns const 引用的函数,但在 Dart 中,const 的工作方式完全不同。仅使用 getter 不会阻止其他人修改列表。
那么如何在不允许修改列表的情况下提供对列表值的访问?
我正在寻找比创建 getNth
函数更好的方法,因为这还需要创建 length
、map
等方法。
我想 UnmodifiableListView
就是您要找的。
查看 UnmodifiableListView Documentation
你可以这样使用它:
List<int> _myList = [1, 2, 3];
List<int> get myList => UnmodifiableListView(_myList);