Koltin中的+=

2020-03-27  本文已影响0人  kevinsEegets

在Java中当我们需要叠加一个数组中的数据时,我们可以使用
+=来操作,但是kotlin中没有此方法,但是kotlin有更好的方式来实现

使用plus方式实现(plus返回一个列表,该列表包含原始集合的所有元素和指定集合的所有元素。类似于普通集合的add功能, 也可以add一个集合进去)

fun plus(){
        val list = arrayListOf(1, 2, 3)
        var totalCount: Int? = 0
        list?.let {
            for (product in it){
                totalCount = totalCount?.plus(product)
            }
        }
        smartLog {
            "totalCount plus---$totalCount"
        }
}

Decompile解析

   Integer var21;
      Integer var21;
      if (list != null) {
         $i$f$map = false;
         $i$f$smartLog = false;
         $i$f$mapTo = false;

         for(var8 = list.iterator(); var8.hasNext(); totalCount = var21) {
            Integer product = (Integer)var8.next();
            if (totalCount != null) {
               int var10000 = totalCount;
               Intrinsics.checkExpressionValueIsNotNull(product, "product");
               var21 = var10000 + product;
            } else {
               var21 = null;
            }
         }
      }

使用sum方式实现(sum计算集合中所有数据的值的总和)

fun sum(){
        val list = arrayListOf(1, 2, 3)
        var totalCount: Int? = 0
        totalCount = commonCartItems?.map{
            it.quantity
        }?.sum()
        smartLog {
            "totalCount sum---$totalCount"
        }
    }

Decompile解析


   Integer var21;
         Iterable $this$map$iv = (Iterable)var23;
         $i$f$map = false;
         Collection destination$iv$iv = (Collection)(new ArrayList(CollectionsKt.collectionSizeOrDefault($this$map$iv, 10)));
         $i$f$mapTo = false;
         var8 = $this$map$iv.iterator();

         while(var8.hasNext()) {
            Object item$iv$iv = var8.next();
            ConfirmProduct it = (ConfirmProduct)item$iv$iv;
            int var11 = false;
            Integer var20 = it.getQuantity();
            destination$iv$iv.add(var20);
         }
         List var13 = (List)destination$iv$iv;
         var21 = CollectionsKt.sumOfInt((Iterable)var13);

可以看到sum方式是铜鼓Collections集合的形式来添加的,使用plus是通过叠加的形式来操作的

plus返回一个列表,该列表包含原始集合的所有元素和指定集合的所有元素。类似于普通集合的add功能, 也可以add一个集合进去, sum计算集合中所有数据的值的总和

上一篇下一篇

猜你喜欢

热点阅读