遍历枚举值
Iterating over enumeration values
假设我在锡兰有这个枚举:
abstract class Suit()
of hearts | diamonds | clubs | spades {}
object hearts extends Suit() {}
object diamonds extends Suit() {}
object clubs extends Suit() {}
object spades extends Suit() {}
我想迭代这些值。在 Java,我会做 Suit.values()
。锡兰有类似的东西吗?
我试图自己定义它,但没有成功,因为 Ceylon 中没有静态成员?我应该只在顶层定义吗:
Suit[4] suites= [hearts, diamonds, clubs, spades];
for (suit in `Suit`.caseValues) {
// ...
}
注意:因为它使用元模型,所以它有点慢——肯定没有 Enum.values()
快。如果您要经常使用它,请缓存结果。
假设我在锡兰有这个枚举:
abstract class Suit()
of hearts | diamonds | clubs | spades {}
object hearts extends Suit() {}
object diamonds extends Suit() {}
object clubs extends Suit() {}
object spades extends Suit() {}
我想迭代这些值。在 Java,我会做 Suit.values()
。锡兰有类似的东西吗?
我试图自己定义它,但没有成功,因为 Ceylon 中没有静态成员?我应该只在顶层定义吗:
Suit[4] suites= [hearts, diamonds, clubs, spades];
for (suit in `Suit`.caseValues) {
// ...
}
注意:因为它使用元模型,所以它有点慢——肯定没有 Enum.values()
快。如果您要经常使用它,请缓存结果。