gpt4 book ai didi

kotlin - 将枚举成员转换为相应的文本

转载 作者:行者123 更新时间:2023-12-02 13:03:14 25 4
gpt4 key购买 nike

在Kotlin中,我有一个枚举,如下所示:

enum class MediaType() {
AUDIO,
VIDEO,
ARTICLE;
}

我想添加一个函数或一些属性,以允许将枚举成员转换为相应的文本。例如:
var mediaType = MediaType.AUDIO
var text = mediaType.toText() // returns the string "MP3"

mediaType = MediaType.VIDEO
text = mediaType.toText() // returns the string "mpeg"

虽然可以将toText函数添加到MediaType类中,但是我不确定该函数如何引用它设置的值。

最佳答案

您可以向枚举添加属性...

enum class MediaType(val text: String) {
AUDIO("mp3"),
VIDEO("mpeg"),
ARTICLE("text");
}

然后像这样使用它:
println(MediaType.AUDIO.text)

如果您想要的是 toText()函数而不是属性,则也可以添加该函数,但可能不是惯用的:
enum class MediaType(private val text: String) {
AUDIO("mp3"),
VIDEO("mpeg"),
ARTICLE("text");

fun toText(): String = text
}

更新:

另一种方法是添加扩展功能,并将此逻辑完全保留在枚举之外:
fun MediaType.toText(): String = 
when(this) {
MediaType.AUDIO -> "mp3"
MediaType.VIDEO -> "mpeg"
MediaType.ARTICLE -> "text"
}

关于kotlin - 将枚举成员转换为相应的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54200840/

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