如何在 Kotlin when 表达式中使用 isNullOrEmpty 等检查

Fru*_*erg 1 string case-when isnullorempty kotlin

与许多其他编程语言一样,Kotlin 提供了isNullOrEmpty等检查,它允许简单地检查myString.isNullOrEmpty().

有没有办法将这样的检查与when 表达式结合起来?默认情况下,表达式仅允许显式字符串。这样的事情可能吗?:

when (myString) {
    "1" -> print("1")
    "2" -> print("1")
    myString.isNullOrEmpty() -> print("null or empty") //This is what I am looking for
    else -> print("None of them")
}
Run Code Online (Sandbox Code Playgroud)

Vad*_*dik 5

when您可以消除这样的争论:

when {
    myString == "1" -> print("1")
    myString == "2" -> print("2")
    myString.isNullOrEmpty() -> print("null or empty")
    else -> print("None of them")
}
Run Code Online (Sandbox Code Playgroud)

或者明确地说“null 或空字符串”:

when (myString) {
    "1" -> print("1")
    "2" -> print("2")
    null, "" -> print("null or empty")
    else -> print("None of them")
}
Run Code Online (Sandbox Code Playgroud)