gpt4 book ai didi

kotlin - 扩展函数内部的不可变val null检查

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

当我有一个不可变的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尚不可用。

JetBrains(https://discuss.kotlinlang.org/t/status-of-kotlin-internal-contracts/6392)目前正在开发一项名为“契约(Contract)”的功能–与他们对Java代码使用their own @Contract annotation所做的功能类似,但会得到编译器的支持。

但是,它处于早期阶段,还没有发布日期。

关于kotlin - 扩展函数内部的不可变val null检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51723003/

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