是否可以从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)) }
最简单的方法是使用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] 删除。
我来说两句