在Kotlin有一个相当于Swift代码下面?

if let a = b.val {

} else {

}

当前回答

如果b是一个成员变量,那么这种方法对我来说似乎是最有可读性的:

val b = this.b
if (b == null) {
    return
}
println("non nullable : ${b}")

这也与它在swift中的工作方式一致,在swift中,一个新的局部变量遮蔽了成员变量。

其他回答

与Swift不同的是,在Kotlin中使用它之前,不需要打开可选选项。我们可以检查该值是否为非空,编译器会跟踪您执行的检查信息,并允许将其作为解包装使用。

迅速:

if let a = b.val {
  //use "a" as unwrapped
} else {

}

在芬兰湾的科特林:

if b.val != null {
  //use "b.val" as unwrapped
} else {

}

更多这样的用例请参考Documentation:(null-safety)

如果b是一个成员变量,那么这种方法对我来说似乎是最有可读性的:

val b = this.b
if (b == null) {
    return
}
println("non nullable : ${b}")

这也与它在swift中的工作方式一致,在swift中,一个新的局部变量遮蔽了成员变量。

也许我已经很晚了,但最简单的方法是打开和选择

yourOptionalString ?: return

这是下面的所有行都将有解开的字符串

Swift如果让声明在Kotlin

简短的回答是使用简单的IF-ELSE,因为在这篇评论的时候,在Kotlin LET中没有等效的东西,

    if(A.isNull()){
// A is null
    }else{
// A is not null
    }

你可以像这样使用let函数:

val a = b?.let {
    // If b is not null.
} ?: run {
    // If b is null.
}

注意,只有在需要代码块时才需要调用run函数。如果你在elvis操作符(?:)后面只有一个线性程序,你可以删除运行块。

注意,如果b为空,或者let-block为空,则运行块将被求值。

因此,您通常只需要一个if表达式。

val a = if (b == null) {
    // ...
} else {
    // ...
}

在这种情况下,只有当b不为空时,else块才会被计算。