gpt4 book ai didi

Kotlin - 无法通过解构声明为 lateinit 变量分配新值

转载 作者:行者123 更新时间:2023-12-01 10:17:38 27 4
gpt4 key购买 nike

以下 Kotlin 代码有效

val (x, y) = getSomeXYPair()

但是你不能用 lateinit 全局变量来做到这一点

class Foo {

private lateinit var x: Int
private lateinit var y: Int

init {
(x, y) = getSomeXYPair()
}
}

我只是想知道是我做错了什么,还是 Kotlin 不支持它?

最佳答案

你不能用任何类型的变量来做到这一点,无论是本地的还是非本地的:

fun main() {
var x : Int = 1
var y : Int = 2

(x, y) = getSomeXYPair()
}

这种语法在 Kotlin 中是完全无效的。您需要使用 varval 开始解构声明: https://kotlinlang.org/docs/reference/multi-declarations.html#destructuring-declarations

也就是说,撇开 lateinit 不支持原始类型(例如 Int)这一事实。

关于Kotlin - 无法通过解构声明为 lateinit 变量分配新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59863713/

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