迭代枚举值

时间:2016-01-18 18:36:21

标签: enums ceylon

说我在锡兰有这个枚举:

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()。锡兰有类似的东西吗?

我试图将它定义为我自己,但这不起作用,因为锡兰没有静态成员?我应该在顶层定义:

Suit[4] suites= [hearts, diamonds, clubs, spades];

1 个答案:

答案 0 :(得分:2)

for (suit in `Suit`.caseValues) {
    // ...
}

Try online

注意:由于这使用了元模型,因此速度有点慢 - 当然不如Enum.values()快。如果你要经常使用它,请缓存结果。