0

在我的 kotlin 代码中,我收到 Type mismatch(inferred type is Int but Boolean is expected) 错误。

fun main(args: Array<String>) {
   var i = args.size 
   while (i--){
    println(args[i])
   }
}
4

3 回答 3

3

您必须提供一个布尔值作为 的参数while。在 Kotlin 中没有自动转换Intto 。Boolean

所以你不能做while(i--),但你可以,例如,做while(i-- != 0)or while(i-- > 0)

于 2017-06-01T06:51:46.130 回答
2

Kotlin while 循环手册

while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y is visible here!
于 2017-06-01T06:56:24.580 回答
1

虽然需要一个布尔值(真/假),但您给出一个整数(i-1)。正确的代码可能是:

fun main(args: Array<String>) {
   var i = args.size 
   while (i>=0){
    println(args[i])
    i--
   }
}
于 2017-06-01T06:52:42.633 回答