gpt4 book ai didi

kotlin - 为什么 Kotlin Pair 中的条目不可变?

转载 作者:IT老高 更新时间:2023-10-28 13:42:18 30 4
gpt4 key购买 nike

我有一个 MutableList of Pairs,我想减少第一个条目的值,所以我的条件是通过(更改):

while(n > 0) {
if(sibice[i].first > 0) {
sum += sibice[i].second
//sibice[i].first-- will not compile
n--
} else i++
}

但是 Pair 类不允许我这样做,除了创建我自己的对之外还有其他解决方法吗?为什么会出现这种情况?

最佳答案

与所有实体一样,可变性也会出现问题。

在您的情况下,您可以使用一对新值更新列表条目。

val newPair = oldPair.copy(first = oldPair.first-1)

或者直接使用长度为2的数组代替intArrayOf(0, 0)。所以你可以直接访问元素。

while(n > 0) {
if(sibice[i][0] > 0) {
sum += sibice[i][1]
sibice[i][0]--
n--
} else i++
}

您甚至可以将扩展值 firstsecond 定义为 IntArray 类型并像以前一样使用它。

val IntArray.second get() = get(1)
var IntArray.first
set(value) = set(0, value)
get() = get(0)

关于kotlin - 为什么 Kotlin Pair 中的条目不可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002406/

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