如何在任何条件表达式中使用“何时”?

时间:2019-11-11 07:42:52

标签: android kotlin

我正在尝试使用带有以下条件表达式的情况:

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)类型不匹配:在其中检查的范围和元素的类型不兼容

那我该如何工作呢?

1 个答案:

答案 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")
    }
}