1

假设我在锡兰有这个枚举:

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];
4

1 回答 1

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

在线尝试

注意:因为它使用元模型,所以它有点慢——当然不如Enum.values(). 如果您要经常使用它,请缓存结果。

于 2016-01-18T21:13:15.737 回答