Enum (列挙型) は enumeration の略で、列挙子 と呼ばれる一連の値を指定またはリストすることを意味します。 これは、曜日やコンパスの方向などに使用できる Verse の型です。
画像をクリックすると拡大表示されます。
クローズドの列挙型とオープンの列挙型
Verse では、列挙型に <open> および <closed> 属性指定子を使用して、島の公開後に列挙型の定義を変更する方法を指定します。
列挙型はデフォルトでクローズドの状態です。 クローズドの列挙型の場合、島を公開した後は列挙値を追加したり、並べ替えたり、クローズドからオープンに変更したりすることができません。
クローズドの列挙型は、曜日のように値が変わらないことが想定されるケースに最適です。
オープンの列挙型の場合、次のことが実行できます。
新しい列挙値を追加する。
列挙値を並べ替える。
オープンの列挙型をクローズドの列挙型に変更する。
オープンの列挙型は、列挙型内の値の数が将来的に増加する可能性がある場合に最適です。 たとえば、武器タイプの列挙型があります。
オープンの列挙型は、デフォルト ケースのない case 文では使用できません。 クローズドの列挙型は、すべての列挙値にケースがある場合にのみ、デフォルト ケースのない case 文で使用できます。
列挙型を作成する
| 操作 | コード例 |
|---|---|
クローズドの列挙型を作成する: 列挙型はデフォルトでクローズドの状態です。
列挙型は | Verse |
オープンの列挙型を作成する: オープンの列挙型は、 | Verse |
列挙子へのアクセス:列挙型に | Verse |
持続可能型
<persistable> 指定子で定義すると、列挙型を持続可能にできます。 モジュールスコープの weak_map 変数で使用すると、ゲーム セッションの間中、その値を持続できます。
Verse での持続性の詳細については、「Verse で持続可能データを使用する」を参照してください。
非持続的な列挙型は、持続可能データと一緒には使用できません。
以下に挙げるクローズドの持続可能な列挙型の例は曜日で、プレイヤー用に格納された後、更新やアクセスができます。
day := enum<persistable>:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday指定がない場合、すべての列挙型はデフォルトでクローズドの状態です。
公開済みの列挙型
島を公開すると、<persistable> 指定子の付いたクローズドおよびオープンの列挙型は、一部の要素が固定されます。
クローズドの列挙型:
<open>に更新することができません。列挙値を追加、並べ替え、削除したり、名前を変更したりすることができません。
指定しない場合、
<closed>指定子を追加することができます。
オープンの列挙型:
<closed>指定子を使用して、クローズドの列挙型に更新することができます。列挙値を追加したり、並び変えたりすることができます。
列挙値の名前を変更したり、削除したりすることができません。
デフォルト ケースのない case 文では使用できません。