美文网首页
Koltin中的+=

Koltin中的+=

作者: kevinsEegets | 来源:发表于2020-03-27 15:32 被阅读0次

    在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计算集合中所有数据的值的总和

    相关文章

      网友评论

          本文标题:Koltin中的+=

          本文链接:https://www.haomeiwen.com/subject/cyiluhtx.html