在 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;
}
Run Code Online (Sandbox Code Playgroud)
输出:第 4 天
在 Kotlin 中,我想要类似的东西,至少能够摆脱.ordinal.
目前是这样的:
enum class Week { sunday, monday, tuesday, wednesday, thursday, friday, saturday }
Run Code Online (Sandbox Code Playgroud)
并访问一个元素,我必须使用详细 Week.monday.ordinal
基本上@jrtapsell 的回答很棒而且很完整。但在 kotlin 中,您也可以覆盖invoke()运算符。
enum class Weekday { MONDAY, TUESDAY;
operator fun invoke(): Int {
return ordinal
}
}
fun main(args: Array<String>) {
print("${Weekday.TUESDAY() + 1}")
}
Run Code Online (Sandbox Code Playgroud)
结果:2
AFM 更漂亮。
| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |