其它的概念 - 枚举

优质
小牛编辑
130浏览
2023-12-01

Kotlin也提供了枚举(enums)的实现:

  1. enum class Day {
  2. SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
  3. THURSDAY, FRIDAY, SATURDAY
  4. }

枚举可以带有参数:

  1. enum class Icon(val res: Int) {
  2. UP(R.drawable.ic_up),
  3. SEARCH(R.drawable.ic_search),
  4. CAST(R.drawable.ic_cast)
  5. }
  6. val searchIconRes = Icon.SEARCH.res

枚举可以通过String匹配名字来获取,我们也可以获取包含所有枚举的Array,所以我们可以遍历它。

  1. val search: Icon = Icon.valueOf("SEARCH")
  2. val iconList: Array<Icon> = Icon.values()

而且每一个枚举都有一些函数来获取它的名字、声明的位置:

  1. val searchName: String = Icon.SEARCH.name()
  2. val searchPosition: Int = Icon.SEARCH.ordinal()

枚举根据它的顺序实现了 Comparable接口,所以可以很方便地把它们进行排序。