据我所知,在Swift中我们可以像这样在枚举中创建自定义项目
enum MyEnum {
case item1
case item2
case custom(param1: String)
var param1: String {
switch self {
case .item1:
return "Item 1"
case .item2:
return "Item 2"
case let .custom(param1):
return param1
}
}
}
在科特林有可能吗?如果是,该怎么办?
答案 0 :(得分:2)
在Kotlin中,Enum
无法做到这一点,但是您可以对Sealed类执行类似的操作:
sealed class MySealedClass(val param1: String) {
object Type1 : MySealedClass("Type 1")
object Type2 : MySealedClass("Type 2")
class Custom(param1: String) : MySealedClass(param1)
}
请参阅this以供参考。
答案 1 :(得分:0)
是的,可以。您只需要给enum class
一个属性,然后为每个枚举项初始化即可。
enum class Test(val param: String) {
Item1("Item 1"),
Item2("Item 2"),
Custom("Hello")
}
println(Test.Custom.param) // Hello