define-enum (マクロ)
パッケージ: CURL.LANGUAGE.COMPILER

シグネチャ

{define-enum [access] type ...}

列挙データ型を作成します。

access: 列挙型のアクセス属性。publiclibrary、または package (既定)です。
type: 列挙データ型の名前。有効な Curl 識別子を指定します。
...: 列挙型の要素を指定する残余引数。要素間を区切るにはカンマを使用します。残余引数内の各要素は次のフォームを持ちます。

name [=value]

ここで、name は要素の名前で、value は要素の値です。

name の有効な Curl 識別子を指定します。

value は、数値、charbool、または String として評価できるオプションのパラメータです。要素の値を指定しないと、自動的に指定されます。値のない最初の要素はインデックス 0、 値のない 2 番目の要素はインデックス 1 というふうに、明示的な値を持たない後続の各要素について、 1 づつ増加した値が指定されます。

説明

列挙データ型は、指定した要素のセットだけから成るデータ型です。各要素は次の属性を持ちます。



新しく定義されたデータ型の変数は、宣言されてその型の要素に初期化できます。次のようになります。

let x:type = type.name


便宜上、値が要素の名前のどれかである String 式を、列挙型の変数に指定することもできます。その場合はその式が、対応する列挙型要素に自動的にキャストされます。次に例を示します。

let x:type = "name"

注意事項

列挙型とその値についての一般的な命名規則は、型名には大文字 / 小文字混合、値には小文字のみを使用します。

Curl 識別子に関するルールと規則の詳細については、『開発者ガイド』の「データ型:変数:識別子の選択」を参照してください。

次のコードは、Bear という名前の列挙型を作成し、テーブル内にその値を表示します。


{define-enum Bear
    polar = "endangered",
    grizzly = "threatened",
    panda,
    pooh = "abundant"
}
{let table =
    {Table 
        {row-prototype font-weight = "bold", 
            "index", "name", "value"
        }
    }
}
{for bear in Bear do
    {table.add
        {row-prototype bear.index, bear.name, bear.value}
    }
}
{value table}


この列挙データ型 Bear には、次の 4 つの要素があります。



for を使用して列挙型の値を反復できることにも留意してください。

注意事項

列挙型の扱い方など詳細については、『Curl 開発者ガイド』の「データ型:その他のデータ型:列挙型」を参照してください。