gpt4 book ai didi

enums - 是否可以在 kotlin 中使用 enum ordinal 而不显式调用 ordinal?

转载 作者:行者123 更新时间:2023-12-01 09:45:32 24 4
gpt4 key购买 nike

在 C 中枚举都是数字,您可以仅通过名称引用该值。

例子:

#include <stdio.h>

enum week { sunday, monday, tuesday, wednesday, thursday, friday, saturday };

int main()
{
enum week today;
today = wednesday;
printf("Day %d",today+1);
return 0;
}

输出:第 4 天

在 Kotlin 中,我想要类似的东西,至少能够摆脱 .ordinal .

目前是这样的:
enum class Week { sunday, monday, tuesday, wednesday, thursday, friday, saturday }

要访问一个元素,我必须使用详细的 Week.monday.ordinal

最佳答案

基本上由 @jrtapsell 回答很棒很充实。但在 kotlin 中你也可以覆盖 调用()运算符(operator)。

enum class Weekday { MONDAY, TUESDAY;

operator fun invoke(): Int {
return ordinal
}
}

fun main(args: Array<String>) {
print("${Weekday.TUESDAY() + 1}")
}

结果:2

AFM 更漂亮。

关于enums - 是否可以在 kotlin 中使用 enum ordinal 而不显式调用 ordinal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49858787/

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