Kotlin中switch
的替代方法是when
。因此,在回收器 View 适配器中,当我返回 View 类型时,我使用when
:
override fun getItemViewType(position: Int): Int {
when (position) {
0 -> return ItemViewType.TITLE.type
1 -> return ItemViewType.SUBTITLE.type
2 -> return ItemViewType.ITEM.type
else -> return -1
}
}
但是,以上语句发送了我们的警告消息
Return can be lifted out of 'when'
。有谁知道使用
when
的正确方法是什么?以及如何解决上述情况? 最佳答案
您使用的when
就像一个简单的Java switch
语句,虽然可以,但不是很惯用,可以进行改进。您可以分两步重构代码:
when
可以用作表达式returns a value if you wish:override fun getItemViewType(position: Int): Int {
return when (position) {
0 -> ItemViewType.TITLE.type
1 -> ItemViewType.SUBTITLE.type
2 -> ItemViewType.ITEM.type
else -> -1
}
}
override fun getItemViewType(position: Int) = when (position) {
0 -> ItemViewType.TITLE.type
1 -> ItemViewType.SUBTITLE.type
2 -> ItemViewType.ITEM.type
else -> -1
}