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

Kotlin中When语句出现类型不兼容错误排查

问题原因

你这段代码的问题出在when表达式的用法错误:

  • 你写的when(votersAge)是把votersAge(Int类型)作为匹配目标,但后面的分支条件(votersAge > 18)、(votersAge <= 18)都是Boolean类型的结果,Int和Boolean类型不兼容,所以编译器报出类型不匹配的错误。
修复方案

有两种正确的写法:

方案1:去掉when的参数,直接用条件分支

这种写法更适合做条件判断:

var votersAge = 17
var cardEligibility = when {
    votersAge > 18 -> true
    else -> false
}

甚至可以简化成更简洁的表达式:

var votersAge = 17
var cardEligibility = votersAge > 18

方案2:保留when的参数,用范围/值匹配

如果想用带参数的when写法,可以这样写:

var votersAge = 17
var cardEligibility = when(votersAge) {
    in 19..Int.MAX_VALUE -> true
    else -> false
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:07:31