gpt4 book ai didi

kotlin - 无法在 kotlin 多平台中访问预期的类构造函数参数

转载 作者:行者123 更新时间:2023-12-02 12:58:47 27 4
gpt4 key购买 nike

我目前正在使用 kotlin 开发一个多平台模块。为此,我依赖 expect / actual mechanism .

我在 Common.kt 中声明了一个简单的类:

expect class Bar constructor(
name: String
)

我想在通用方法中使用定义的类(也存在于 Common.kt 中):
fun hello(bar: Bar) {
print("Hello, my name is ${bar.name}")
}

实际的实现在 Jvm.kt 中定义。 :
actual data class Bar actual constructor(
val name: String
)

问题是我的 hello 中出现以下错误功能

Unresolved reference: name



我究竟做错了什么?

最佳答案

Expected classes constructor cannot have a property parameter


因此有必要用 val name: String 将属性描述为类成员。

Actual constructor of 'Bar' has no corresponding expected declaration


但是,要使实际的构造函数与预期的声明相匹配,参数的数量必须相同。这就是为什么 参数还添加了 name: String在构造函数中除了存在 房产 .
expect class Bar(name: String) {
val name: String
}

actual class Bar actual constructor(actual val name: String)
注意:如果我们将预期类的构造函数留空,我们会看到 IDE 在当前类中添加构造函数时会提示不兼容。
总帐

关于kotlin - 无法在 kotlin 多平台中访问预期的类构造函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56005696/

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