gpt4 book ai didi

android - Kotlin - 等效于 Swift 的 "if let + cast"组合

转载 作者:IT老高 更新时间:2023-10-28 13:30:05 26 4
gpt4 key购买 nike

我正在尝试找出如何在kotlin中实现“if let + cast”的组合:

迅速:

if let user = getUser() as? User {
// user is not nil and is an instance of User
}

我看到了一些文档,但他们对这种组合只字未提

https://medium.com/@adinugroho/unwrapping-sort-of-optional-variable-in-kotlin-9bfb640dc709 https://kotlinlang.org/docs/reference/null-safety.html

最佳答案

一种选择是使用 safe cast operator + safe call + let :

(getUser() as? User)?.let { user ->
...
}

另一种方法是使用 smart cast在传递给 let 的 lambda 内部:

getUser().let { user ->
if (user is User) {
...
}
}

但也许最易读的方法是只引入一个变量并在此处使用智能转换:

val user = getUser()
if (user is User) {
...
}

关于android - Kotlin - 等效于 Swift 的 "if let + cast"组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44236842/

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