dart - 飞镖图中的默认值
问题描述
有没有办法从飞镖(如Java)中的地图获取默认值:
static Map DEFAULT_MAPPING = Map.unmodifiable({
"k1": "value"
});
DEFAULT_MAPPING['k1'] //get 'value'
DEFAULT_MAPPING.getOrElse('non-present-key', 'default-value') //something like Java has
解决方案
如果您的地图不包含空值,则可以使用if null 运算符:
var map = {
'a': 1,
'b': 2,
};
var cValue = map['c'] ?? 3;
或者,您可以定义自己的扩展方法:
extension DefaultMap<K,V> on Map<K,V> {
V getOrElse(K key, V defaultValue) {
if (this.containsKey(key)) {
return this[key];
} else {
return defaultValue;
}
}
}
var map = {
'a': 1,
'b': 2,
};
var cValue = map.getOrElse('c', 3);
推荐阅读
- c++ - 'operator++(int) &' 运算符重载中的 '&' 是什么意思?
- flutter - 如何在扫描渐变中包含笔画帽?
- javascript - 如何使相同的按钮隐藏和显示块?
- php - 如何通过单击朋友的个人资料来更新消息状态以阅读
- android - 拔下电源后,React-Native Android 设备上不会发生振动
- sql - Scala Doobie PSQLException:错误:使用“Like %”时输入末尾的语法错误
- java - eclipse 在保存项目时自动编译。如何摆脱它
- python - assertEqual 除了一个键之外的两个字典
- windows - AppxProvisionedPackage 命令卡在 PowerShell 上并返回 DismInitialize 失败
- barcode - 如何使用条形码跟踪产品的有效期?