我是Kotlin的新手和编程.我非常喜欢模式匹配的想法,正如您在下面的代码中看到的那样,我正在尝试使用when语句.
fun main(args: Array<String>) {
val myAr = arrayOf(1,2,3)
val myL = listOf(1,2,3)
fun probablyBlind() {
when(myL.size != myAr.size) {
myL.size > myAr.size -> {
println("myL.size > myAr.size = ${myL.size > myAr.size}")
}
myL.size < myAr.size -> myAr.forEach { println(it) }
}
if(myL.size != myAr.size) {
println("Inside if. myL.size > myAr.size =
${myL.size > myAr.size}")
}
}
probablyBlind()
}
Run Code Online (Sandbox Code Playgroud)
如果您运行代码,结果是:
myL.size > myAr.size = false
Run Code Online (Sandbox Code Playgroud)
这意味着在某些时候列表的大小与数组的大小不同.然后它在when语句中计算为true的第一个比较.但后来打印出来的是虚假的.这意味着它不应该运行这部分代码.if语句永远不会计算为true.
有人可以帮我这个吗?也许这是我目前无法看到的非常简单的事情.如果是这样的话,请原谅.