使用 Elvis Operator 进行 Null 和 Empty 检查

Hum*_*mit 5 kotlin

我有:

return if(mValue== null || mValue.asString.isNullOrEmpty()) "Home" else mValue.asString

我尝试执行 Elvis 运算符:

return mValue?.asString ?: "Home"

但我也想检查一下是否有空箱子mValue

因此,如果mValue为 null 或为空,我想返回“Home”,否则以 String 形式返回其内容,而不使用whenor if

谢谢你!

小智 8

如果字符串为空,则实际上不能使用 elvis 运算符。根据文档, elvis 运算符仅用于检查变量是否为 null。因此,我建议您使用:

return if (mValue.isNullOrEmpty()) "Home" else mValue
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!


Mic*_*ael 6

你可以结合orEmptyifEmpty

return mValue?.asString.orEmpty().ifEmpty { "Home" }
Run Code Online (Sandbox Code Playgroud)

这是否是一种进步,我不知道。