dart - 使用三点 (...) 表示法在 Dart2 中添加条件映射条目有什么好处?
问题描述
所以我有一段看起来像这样的代码:
Map<String, dynamic> params = {
param1:val1
//rest of params
};
if(someCodnition){
params[newKey]=newValue
}
我被告知最好使用...
符号,但是无法解释为什么除了代码外观之外它更好(恕我直言,这是最糟糕的)。
所以代码应该是这样的:
Map<String, dynamic> params = {
param1:val1,
//rest of params
if(someCondition) ... {
newKey:newValue
}
};
- 这样做真的更好吗?
- 有没有性能提升?
- 不会创建包含当前
params
状态的新地图{newKey:newValue}
- 这将是最糟糕的。
解决方案
如果只有一个新密钥,那么您应该这样做:
Map<String, dynamic> params = {
param1:val1,
//rest of params
if (someCondition) newKey:newValue
};
如果有多个,我可能会使用您展示的版本。编译器应该(最终,如果还没有的话)能够识别您正在内联映射文字,并且只需将元素直接插入到外部映射中,而无需创建中间映射。
推荐阅读
- python-2.7 - 以编程方式将 Visio 图表转换/导出为 SVG
- jquery - 在匹配之前和之后查找文本 - jquery
- python - 在多变量函数中除以零
- laravel - 如何解决需要多个版本的相同依赖项的 NPM 问题?
- apache - Apache2 - 如何禁用虚拟主机上的目录列表?
- java - 将会话值附加到 Java 中的数组
- python - Python上的KeyError检查幅度
- android - ViewModel - 在运行时观察 LiveData 时更改方法的参数?
- assembly - PowerPC ASM:insrdi 指令
- sql-server-2008 - 在 SQL 中使用 CTE 创建表