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