Kotlin:从int转换为Enum

加琳娜

是否可以从int转换为Kotlin中的Enum?我有枚举:

enum class Rank(val value: Int) { UNITY(1), TEN(2), HUNDRED(3), THOUSAND(4) }

我想打这样的电话:

val results = ints.mapIndexed { index, element -> getRomanDigit(element, Rank(ints.size - index)) }
玛丽埃尔·霍弗斯霍尔姆(Mariell Hoversholm)

最简单的方法是使用first(也有firstOrNull替代方法),如下所示:

val results = ints.mapIndexed { idx, e -> getRomanDigit(e, Rank.values().first { it.value == ints.size - idx }) }
// Or using a map for caching:
val ranks = Rank.values().map { it.value to it }.toMap()
val results = ints.mapIndexed { idx, e -> getRomanDigit(e, ranks[ints.size - idx]!!) }

但是,这似乎是您希望data class为等级指定a的情况,因为您可能无法映射inumerations中所有可能的值ints.size - idx

data class Rank(val value: Int)
val results = ints.mapIndexed { idx, e -> getRomanDigit(e, Rank(ints.size - idx) }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章