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

if let a = b.val {

} else {

}

当前回答

在我看来,最干净的选择是这样的

迅速:

if let a = b.val {

} else {

}

科特林

b.val.also { a ->

} ?: run {

}

其他回答

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

yourOptionalString ?: return

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

我的答案完全是抄袭别人的。但是,我不容易理解他们的表情。所以我想提供一个更容易理解的答案会很好。

迅速:

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

}

在芬兰湾的科特林:

b.val?.let{a -> 
  //use "a" as unwrapped
} ?: run{
  //else case
}

你可以像这样使用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块才会被计算。

在我看来,最干净的选择是这样的

迅速:

if let a = b.val {

} else {

}

科特林

b.val.also { a ->

} ?: run {

}

Swift如果让声明在Kotlin

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

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