gpt4 book ai didi

kotlin - 如何在 kotlin 1.5 中用 sumOf 替换 sumBy

转载 作者:行者123 更新时间:2023-12-04 03:27:18 27 4
gpt4 key购买 nike

我有以下代码:

val sum = list.itens.sumBy { item ->
when (item.intValueI == item.intValueII) {
true -> 1
else -> 0
}
}
更新到 Kotlin 1.5 , 我收到了 deprecated警告;我应该如何继续实现相同的功能?
我在下面试过:
val result = list.itens.sumOf<ListItemClass> { item ->
val intValueI = item.value ?: 0
val intValueII = item.valueII ?: 0
when(item.intValueI == item.IntValueII){
true -> 1
else -> 0
}
}

最佳答案

为什么不过滤您的项目并计算它们而不是涉及数学,因为这似乎是您所追求的?

val sum = list.items.filter { it.intValue1 == it.intValue2 }.size
或者,甚至更简单(感谢 Tenfour04 在评论中!):
val sum = list.items.count { it.intValue1 == it.intValue2 }
如果出于某种原因绝对必要使用 sumOf ,一个稍微有点hacky的解决方案是:
val sum = list.items.sumOf { 
if (it.intValue2 == it.intValue2) 1 else 0 as Int
}
看起来编译器/Android Studio 在返回 1 和 0 时有点困惑,因此需要一个 else任一 it.intValue1 * 00 as Int .前者更困惑,但后者会留下 AS 警告。

关于kotlin - 如何在 kotlin 1.5 中用 sumOf 替换 sumBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67406027/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com