当我写的时候:
num = 3
switch (num){
case num < 2:
Log.d("int", "3");
case num > 2:
Log.d("int", "2");
case num > 0 :
Log.d("int", "1");
case num > 40:
Log.d("int", "10");
}
Run Code Online (Sandbox Code Playgroud)
这将打印案例 2 和案例 3。
我想在 kotlin 中做同样的事情,而不是在这种情况下使用多个 if/else 语句。When{} 对我没有帮助,因为据我所知,当我们输入大小写时它有一个强制中断,并且它不会进一步遍历大小写。有谁知道这个问题的好解决方案吗?
fur*_*kan 13
您所要求的是允许fallthrough在 switch 语句中使用。Kotlin 不支持这一点when。
允许失败很容易导致错误,因为它不够明确。Jetbreans 团队似乎有一个“暂定计划”,支持continue在 when 语句中使用关键字以允许失败。这会让事情变得明确。
stackoverflow中建议了一些解决方法,但使用多个 if 语句可能是目前 Kotlin 最干净的方法。
以下是 kotlinlang 中对此的讨论:https ://discuss.kotlinlang.org/t/fall-through-in-when/2540
| 归档时间: |
|
| 查看次数: |
4740 次 |
| 最近记录: |