我正在尝试使用带有以下条件表达式的情况:
fun getStringLength(s: Int){
when(s < 5){
}
}
代码会被编译,但是当我尝试像下面这样阻塞时将其赋予主体:
fun getStringLength(s: Int){
when(s < 5){
in 1..5 -> println("It is less than 5")
}
}
它给我一个错误:“ 错误:(13,7)类型推断失败。应在输入类型(参数类型,接收器类型或预期类型)中提及类型参数T的值。尝试明确指定它。 错误:(13,7)类型不匹配:在其中检查的范围和元素的类型不兼容“
那我该如何工作呢?
答案 0 :(得分:2)
当您写s < 5
时,它被计算为布尔值,这就是为什么您的条件应该为true,false或其他原因。
fun getStringLength(s: Int){
when(s < 5){
true -> println("It is less than 5")
false -> println("It is NOT less than 5")
}
}
要使用范围,请尝试以下一种方法:
fun getStringLength(s: Int){
when(s){
in 1..5 -> println("It is less than 5")
}
}