如果我在向枚举类添加参数/属性时省略“val”关键字,这似乎对枚举条目没有任何影响,这是否重要

Does it matter if I omit the 'val' keyword when adding a parameter/property to an enum class, doesn't seem to make any difference to the enum entries

提问人:MrFlavour 提问时间:11/1/2023 最后编辑:StorytellerrMrFlavour 更新时间:11/2/2023 访问量:43

问:

创建枚举类时,我不确定向参数添加 val 和不添加 val 有什么区别。当为每个枚举条目提供所述参数的参数时,似乎没有区别。希望有人能解释。

这是没有“val”的

image_1

这是用'val

image_2

谢谢。

我试过到处寻找,唯一的区别似乎是一个参数,一个是属性,但我并不真正理解其中的区别。我对 kotlin/android studio 还是相当陌生的。

Kotlin android-studio 枚举属性

评论


答:

1赞 Mohsen 11/1/2023 #1

如果你不添加,你以后就无法访问它,它不会是类的属性,它只是你传递给构造函数的一个参数,它在枚举中毫无意义val

enum class ScreenSize(width: Int, height: Int) { // not declared as val
    Big(1000, 1600),
    Medium(700, 1000),
    Small(500, 700)
}

fun drawScreen(screenSize: ScreenSize) {
    //Compile error
    drawRect(
        width = screenSize.width,
        height = screenSize.height,
    )
}

fun drawRect(width: Int, height: Int) {
    .....
}

评论

0赞 MrFlavour 11/2/2023
啊,好吧,这是有道理的,非常感谢您澄清这一点。
0赞 Mohsen 11/3/2023
不客气,如果答案对您有意义,请将其标记为已接受的答案将不胜感激