gpt4 book ai didi

android-studio - 您可以在Kotlin中使用自定义getter,默认setter和没有初始化程序声明属性吗?

转载 作者:行者123 更新时间:2023-12-03 17:45:47 25 4
gpt4 key购买 nike

我有一个带有getter,默认setter和没有初始化器的属性,如下所示:

    var test: String
get() = "test value"
private set

如果我在Android Studio中尝试此代码,则会收到编译错误,指出该 Property must be initialized。如果我改为在 try.kotlinlang.org上尝试,则代码运行良好,并且每当我访问该属性时,就会返回 test value

我正在尝试阅读Kotlin documentation for properties,但我无法真正确定这是否可行。

这是有效的Kotlin代码吗?

最佳答案

try.kotlinlang.org也可以接受未初始化的val并返回null,尽管它不可​​为空:

var test: String
private set

如果您使 var完全不受字段支持,则可以实现您的意图:
var test: String
get() = "test value"
private set(value) = Unit

对于 Backing Fields,文档说明:

A backing field will be generated for a property if it uses the default implementation of at least one of the accessors, or if a custom accessor references it through the field identifier.

关于android-studio - 您可以在Kotlin中使用自定义getter,默认setter和没有初始化程序声明属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49209809/

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