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

var p: Pair<Int, String> = Pair(5, "Test")
p.first = 3

Error under p.first: Val cannot be reassigned

推荐答案

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

data class Pair<out A, out B>(val first: A, val second: B)

If it were mutable, it could not be covariant in out A and out B, nor would it be safe to use as a Map key.

然而,和其他数据类一样,它可以是copied with changes.

p = p.copy(first = 3)

Kotlin相关问答推荐

如何在Jetpack Compose中的列中渲染图像

API迁移到Spring Boot 3后,Spring Security无法工作

何时使用figureEach

T和T有什么区别:任何>

捕捉异常是Kotlin协程中的反模式吗?

Spring Boot Kotlin 数据类未使用 REST 控制器中的默认值初始化

如何使用 Mockk 模拟返回值类的 Kotlin 函数类型?

mutableStateOf 在 Jetpack Compose 中不记住 API 的情况下保持重组后的值

基类中的 ViewModelProviders.get(...)

Kotlin 方法重载

Kotlin 中多个 init 块的用例?

kotlin:扩展方法和空接收器

Kotlin:使用Gradle进行增量编译

Kotlin:子构造函数如何使用其父构造函数的辅助构造函数?

Android 上的 Kotlin:将map到list

在kotlin中初始化类变量的正确位置是什么

在多平台子元素中使用kapt

如何在kotlin用mockito模仿lambda

Kotlin 对象 vs 伴生对象(companion-object) vs 包作用域(package scoped)方法

任务':app:kaptDebugKotlin'的Kotlin执行失败