properties - Kotlin - 可为空的属性默认为空值

标签 properties kotlin nullable

假设我用 定义了一个类可以为空 属性(property)

class ABC {
   var myProperty: String? = null
}

有没有办法将其默认为空值?
也许类似于 SCALA 的东西?
var myProperty: String? = _  // compilation error

或者干脆:
var myProperty: String?  // compilation error

我知道我们可以使用 延迟初始化 Kotlin 1.2 中的变量稍后可以像这样检查初始化:
lateinit var myProperty: String

if (::myProperty.isInitialized) {
   //value is not-null
}

那么 lateinit 是首选方式吗?默认为空值是可能的还是故意省略的?

最佳答案

Kotlin 有意要求您显式初始化所有属性。没有速记语法。对于可空类型的属性,首选方法是不使用 lateinit , 但用 null 声明它初始化程序。
isInitialized lateinit 的方法属性旨在处理复杂的情况,如资源清理;它不打算用作 null 的替代品检查想要节省写作时间的用户 = null作为属性声明的一部分。

关于properties - Kotlin - 可为空的属性默认为空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51628035/

相关文章:

ios - 如何创建返回字符串的 block 并将其存储在属性中?

python - kivy 中的属性绑定(bind)和样式问题

properties - 为具有定义的 getter 和 setter 的属性设置默认值

kotlin - 仅当右侧不为空时才分配的更好方法?

android - 使用 kotlin 在 android 中与底部工作表进行数据绑定(bind)

c# - Microsoft 更喜欢 False 值?

objective-c - 如果子类引用父类(super class) ivar,则合成不相关的属性会失败

android - 找不到androidx.compose :compose-compiler:1. 0.0-beta03

c# - 不同类中的相同变量名,但一个可以为空

c# - 如何为可为空的 bool 值读取 null