Kotlin:如何修改一对中的值?

Joe*_*man 4 tuples kotlin

为什么我不能更改对中的值:

var p: Pair<Int, String> = Pair(5, "Test")
p.first = 3
Run Code Online (Sandbox Code Playgroud)

错误p.first:Val无法重新分配

eph*_*ent 12

与大多数数据类一样,Pair是不可变的.它的定义是有效的

data class Pair<out A, out B>(val first: A, val second: B)
Run Code Online (Sandbox Code Playgroud)

如果它是可变的,它不能在协变out Aout B,也不会是安全的,因为一个Map键使用.

但是,与其他数据类一样,它可以随更改一起复制.

p = p.copy(first = 3)
Run Code Online (Sandbox Code Playgroud)