Kotlin无效性检查if-elsefunction的方法…如何?
为了简单的检查
if (variable != null) { doSomething(variable) }
我们可以改变
variable?.let { doSometing(it) }
但对于其他情况
if (variable != null) { doSomething(variable) } else { doOtherThing() }
在单一function中是否有这样做的方法? 有没有像这样的东西?
你可以使用elvis-operator?:像这样:
variable?.let { doSomething(it) } ?: doOtherThing()
不过,我个人认为这很快就会变得难以理解。 ifexpression式没有错。
另一种可能与function风格相适应的方法是使用何时,这非常接近模式匹配:
when(variable) { null -> doOtherThingSomething() else -> doSomething(variable) }
但是,我认为, if
抛弃了经典的if
语句,那么你应该小心谨慎,如果你所追求的是自然的目的 – 有条件的执行。 如果你用两种不同的方式计算价值,然后以相同的方式使用它,这种方法是有道理的。 但是,如果你的代码路径在这一点上分歧,不会再次相遇,那么if
提供更明确的意图。
如果使用三元运算符检查非空条件与If … Else语句,则可以映射可为null的值(如果不为null)。
在这里,我写了一些代码片段来检查值null或不,
情况1:值初始化
fun main(args: Array) { val value:Int ?= 10 val mapped = value?.let { "Value is == $value" } ?: "Value not initialized..." println(mapped) }
你得到的结果是:值是== 10
情况2:值集保持为空
fun main(args: Array) { val value:Int ?= null val mapped = value?.let { "Value is == $value" } ?: "Value not initialized..." println(mapped) }
你得到的结果:值未初始化…