tor*_*ore 4 switch-statement kotlin android-studio
Kotlin 使用了when而不是,switch它看起来像这样:
when(version) {
"v1" ->
Log.d("TAG", "WOW")
"v2" ->
Log.d("TAG", WOAAH")
else ->
"Log.d("TAG", "ELSE")
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。但是如果我想在每个条件后添加几行代码怎么办?这是我的代码,我尝试and在每一行的末尾使用:
when(version) {
"anhorig" ->
Log.d("TAG", "Anhorig") and
subHeader.text = getString(R.string.sv_anhorig_ch1)
"personal" ->
Log.d("TAG", "Personal")
else ->
Log.d("TAG", "Else")
}
Run Code Online (Sandbox Code Playgroud)
我在线时出错
subHeader.text = getString(R.string.sv_anhorig_ch1)
Run Code Online (Sandbox Code Playgroud)
说 Type mismatch. Expected Int, found string and Unit
如果与when代码分开,代码行可以正常工作。我究竟做错了什么?
您需要将多行代码包含在一个块中,如下所示:
when(version) {
"anhorig" -> {
Log.d("TAG", "Anhorig")
subHeader.text = getString(R.string.sv_anhorig_ch1)
}
"personal" ->
Log.d("TAG", "Personal")
else ->
Log.d("TAG", "Else")
}
Run Code Online (Sandbox Code Playgroud)
至于类型不匹配,when 表达式的值等于块中最后一个评估的语句。这个表达式的预期值似乎是 Int,但你的最后一条语句是subHeader.text = getString(R.string.sv_anhorig_ch1)哪个字符串。
您可以在 Kotlin 文档中阅读有关when 表达式的更多信息。
| 归档时间: |
|
| 查看次数: |
2661 次 |
| 最近记录: |