Kotlin 中 switch 写法

梦幻独角兽 2024-09-05 ⋅ 20 阅读

引言

Kotlin 是一种基于 JVM (Java Virtual Machine) 的静态类型编程语言,它可以与 Java 无缝协作。在 Kotlin 中,我们可以使用 when 表达式来实现类似于 Java 中的 switch 语句。本文将探讨 Kotlin 中使用 when 表达式的写法,并提供一些实例来帮助我们理解和使用它。

when 表达式的基本语法

在 Kotlin 中, when 表达式的语法如下所示:

when (variable) {
    value1 -> // 执行逻辑
    value2 -> // 执行逻辑
    value3 -> // 执行逻辑
    else -> // 执行逻辑
}
  • variable 是待匹配的变量。
  • value1value2value3 是匹配的值。可以是单个的值,也可以是多个值的列表。
  • 每个匹配值对应一段执行逻辑,你可以在符合条件的分支内编写所需的代码。
  • else 分支是可选的,当没有一个条件匹配时,将会执行 else 分支。

when 表达式的高级用法

合并多个条件

在 Kotlin 中,我们可以合并多个匹配条件,并将它们放在一个分支内。示例如下:

when (variable) {
    in 1..10 -> // 执行逻辑
    in 11..20 -> // 执行逻辑
    !is Int -> // 执行逻辑
    else -> // 执行逻辑
}
  • in 关键字用于检查变量是否在给定的范围内。
  • !is 关键字用于检查变量是否不属于某个类型。

使用表达式作为分支条件

Kotlin 中的 when 表达式不仅仅支持常量值和范围,还可以使用表达式来作为条件。这些表达式的结果将会与 variable 进行比较。示例如下:

when (variable) {
    is String -> // 执行逻辑
    variable.length > 10 -> // 执行逻辑
    else -> // 执行逻辑
}
  • is 关键字用于检查变量是否属于某个类型。
  • variable.length > 10 是一个表达式,它返回一个 boolean 值。

实例演示

下面是一些使用 Kotlin 中 when 表达式的实际示例:

fun describeObject(obj: Any) {
    when (obj) {
        is String -> println("输入的是字符串")
        is Int -> println("输入的是整数")
        in 1..10 -> println("输入的是 1 到 10 之间的数")
        in 11..20 -> println("输入的是 11 到 20 之间的数")
        else -> println("无法识别输入")
    }
}

在上述示例中,函数 describeObject 接受一个参数 obj,并使用 when 表达式根据不同的条件进行匹配和处理。

总结

通过本文,我们了解了 Kotlin 中 when 表达式的语法和一些高级用法。它可以完全替代 Java 中的 switch 语句,并且提供了更多的灵活性和功能。当你需要在 Kotlin 中实现类似 switch 的行为时,when 表达式将是你的首选。希望本文能对你理解和使用 Kotlin 中的 when 表达式有所帮助。


全部评论: 0

    我有话说: