在使用地图时,一个常见的要求是:
- 如果一个给定的键已经存在,则更新该值
- 如果不存在,则设置该值
你可能很想实现一些条件逻辑来处理这个问题。
class ShoppingCart {
final Map<String, int> items = {};
void add(String key, int quantity) {
if (items.containsKey(key)) {
// item exists: update it
items[key] = quantity + items[key]!;
} else {
// item does not exist: set it
items[key] = quantity;
}
}
}
或者,一个更短的版本是。
class ShoppingCart {
final Map<String, int> items = {};
void add(String key, int quantity) {
// add 0 if items[key] does not exist
items[key] = quantity + (items[key] ?? 0);
}
}
不管怎么说,这段代码的可读性都不高。
而update() 方法提供了一种更简单(也更有表现力)的方式来做同样的事情:👇
class ShoppingCart {
final Map<String, int> items = {};
void add(String key, int quantity) {
items.update(
key,
(value) => quantity + value,
ifAbsent: () => quantity,
);
}
}
在这里了解更多。Map.update()方法。
编码愉快!
在使用地图时,一个常见的要求是:
- 如果一个给定的键已经存在,则更新其值-
如果不存在,则设置其值你可能会想实现一些条件逻辑来处理这个问题。
但是update()方法提供了一种更简单的方式来做同样的事情:👇pic.twitter.com/7UMrqnARxd-
Andrea Bizzotto 💙 (@biz84)April 2022