You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Kotlin的when语句对空数组进行模式匹配?

Kotlin中空数组的匹配方式

首先明确:Kotlin不支持直接用[]字面量在when表达式中作为匹配模式来判断空数组。你写的示例代码里,[]会被编译器当成创建新空数组的表达式,而不是匹配条件,这样的写法会直接报错。

想要判断数组是否为空,有两种更可靠的方式:

1. 直接调用isEmpty()方法(推荐)

这是最直观、最通用的方式,不需要依赖任何内部实现细节:

val a: Array<Int> = ...

when {
    a.isEmpty() -> println("empty")
    else -> println("not empty")
}

也可以简化成更简洁的if-else写法:

if (a.isEmpty()) println("empty") else println("not empty")

2. 匹配emptyArray()实例(不推荐)

Kotlin的emptyArray<T>()方法会缓存同一类型的空数组实例,所以理论上可以通过引用相等来匹配:

val a: Array<Int> = ...

when (a) {
    emptyArray<Int>() -> println("empty")
    else -> println("not empty")
}

但这种方式不推荐,因为它依赖于Kotlin标准库对emptyArray()的缓存实现——虽然当前版本确实会缓存,但这种实现细节未来可能变化,而且写法也不如isEmpty()清晰易懂。

另外补充:如果是List类型,Kotlin同样不能用[]字面量匹配空列表,但可以用emptyList()(因为emptyList()是全局单例),不过调用isEmpty()仍然是更稳妥的选择。

内容的提问来源于stack exchange,提问作者pygumby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 15:45:41