在Dart2中使用三点(...)表示法添加条件地图条目的好处是什么?

时间:2019-07-08 11:01:54

标签: dart

所以我有一段看起来像这样的代码:

    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}的新地图,这将是最糟糕的情况。

1 个答案:

答案 0 :(得分:3)

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

   renderItem = {({item}) => {
            PickerBox(item.c_syn_name);
          }}

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