gpt4 book ai didi

Kotlin:返回可以从 'when' 中取出

转载 作者:IT老高 更新时间:2023-10-28 13:28:30 26 4
gpt4 key购买 nike

在 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 可以从'when'中取出

有谁知道使用 when 的正确方法是什么?应该怎么做才能解决上述情况?

最佳答案

您正在使用 when 就像一个简单的 Java switch 语句,这没问题,但不是很惯用,可以改进。您可以分两步重构您的代码:

  1. Kotlin 的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
    }
    }
  2. 现在由一条语句组成的函数体可以更改为 expression body :

    override fun getItemViewType(position: Int) = when (position) {
    0 -> ItemViewType.TITLE.type
    1 -> ItemViewType.SUBTITLE.type
    2 -> ItemViewType.ITEM.type
    else -> -1
    }

关于Kotlin:返回可以从 'when' 中取出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48018091/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com