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 に答える