Kotlin 扩展函数内部的不可变val null检查
当我有一个不可变的val可选时,编译器会跟踪关于我对null执行的检查的信息,并且可以将变量视为非null,并直接在if条件内调用它Kotlin 扩展函数内部的不可变val null检查,kotlin,Kotlin,当我有一个不可变的val可选时,编译器会跟踪关于我对null执行的检查的信息,并且可以将变量视为非null,并直接在if条件内调用它 val s: String? = "test" if (s != null) { s.startsWith("3") // This works } if (!s.isNullOrEmpty()) { s.startsWith("3") // Not working } 是否可以在扩展函数中进行该检查并让编译器知道它?这在Kotlin中尚不可用
val s: String? = "test"
if (s != null) {
s.startsWith("3") // This works
}
if (!s.isNullOrEmpty()) {
s.startsWith("3") // Not working
}
是否可以在扩展函数中进行该检查并让编译器知道它?这在Kotlin中尚不可用 JetBrains()目前开发了一个名为“Contracts”的功能,它与Java代码的功能类似,但将得到编译器的支持
不过,它还处于早期阶段,目前还没有发布日期。基本上,您要求的是尚未提供的合同。看到和