gpt4 book ai didi

kotlin - 从关联值初始化枚举

转载 作者:可可西里 更新时间:2023-11-01 00:38:39 24 4
gpt4 key购买 nike

我想用它的关联值来初始化枚举。

我的枚举:

enum class DirectionSwiped(raw: Int){
LEFT(4),
RIGHT(8);
}

我想这样初始化它:

val direction = DirectionSwiped(raw: 4)

但是我得到这个错误:

Enum type cannot be instantiated

为什么会这样?在 Swift 中,这个功能是这样工作的:

enum Direction: Int {
case right = 2
}

let direction = Direction(rawValue: 2)

如何让它在 Kotlin 中工作?

最佳答案

是的,你可以

enum class DirectionSwiped(val raw: Int){
LEFT(4),
RIGHT(8);
}

val left = DirectionSwiped.LEFT
val right = DirectionSwiped.RIGHT

val leftRaw = DirectionSwiped.LEFT.raw
val rightRaw = DirectionSwiped.LEFT.raw

val fromRaw = DirectionSwiped.values().firstOrNull { it.raw == 5 }

这将是访问枚举类实例的正确方法

你试图做的是在定义站点之外创建一个新实例,这对于 enumsealed 类来说是不可能的,这就是为什么错误说构造函数是私有(private)的

关于kotlin - 从关联值初始化枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822170/

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