gpt4 book ai didi

class - 在 Dart 中,如何为 Map[key] 编写 getter 和 setter?

转载 作者:行者123 更新时间:2023-12-04 18:08:30 24 4
gpt4 key购买 nike

为标量创建 gettersetter 非常简单,但不知道如何为 设置 setter map :

// for scalarString _str = 'hello';String get str => _str;String set str(val) => _str = val;// for MapMap _map = {};Map get map[key] => _map[key]; <== Error: function body ...Map set map[key](val) => _map[key] = val; <=== Error: '(' expected 

似乎需要 operator[],但这是在 class 级别设置的

注意:

的问题
Map get map => _map

这是否允许您更改 _map 而无需通过 setter

最佳答案

不确定我是否完全按照您的要求去做。听起来您想要一个顶级 Map 变量,并且能够为 [] 和 []= 运算符提供您自己的实现。

您必须创建一个类来覆盖运算符 [] 和 []=。但是,您仍然可以实现(我认为?)您所要求的。在我的脑海中,它看起来像这样。

Map _map = new MyMap();

Map get map => _map;

set map(Map m) {
_map = new MyMap.from(m);
}

class MyMap<K,V> implements Map {
MyMap.from(Map<K, V> other) => ...;
V operator [](K key) => ...;
operator []=(K key, V value) => ...;
... other members
}

关于class - 在 Dart 中,如何为 Map[key] 编写 getter 和 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296200/

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