首页 > 解决方案 > 使用三点 (...) 表示法在 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
            }
        };
  1. 这样做真的更好吗?
  2. 有没有性能提升?
  3. 不会创建包含当前params状态的新地图{newKey:newValue}- 这将是最糟糕的。

标签: dart

解决方案


如果只有一个新密钥,那么您应该这样做:

 Map<String, dynamic> params = {
     param1:val1,
     //rest of params
     if (someCondition) newKey:newValue
 };

如果有多个,我可能会使用您展示的版本。编译器应该(最终,如果还没有的话)能够识别您正在内联映射文字,并且只需将元素直接插入到外部映射中,而无需创建中间映射。


推荐阅读