isa (プリミティブ)
パッケージ: CURL.LANGUAGE.COMPILER

データ型の確認演算子。

シグネチャ

obj isa type
obj: 値として評価します。
type: データ型として評価します。

戻り値

obj のデータ型が type かどうかを示す bool

説明

obj がオブジェクトとして評価される場合、objtype のインスタンスまたは type のサブクラスのインスタンスであれば、isatrue を返します。

それ以外の場合は、obj のデータ型が type であれば isatrue を返します。

次の例は、オブジェクトにデータ型の確認演算子を使用する例です。


{value
    || Declare a variable to be an instance of
    || the HBox class, which inherits from Graphic
    let h:HBox = {HBox}

    {text h isa Graphic evaluates to ... {value h isa Graphic}
     {br}h isa float evaluates to ... {value h isa float}
    }
}


次の例は、値にデータ型の確認演算子を使用する例です。


{value
    || Declare an int
    let i:int

    {text i isa int evaluates to ... {value i isa int}
     {br}i isa bool evaluates to ... {value i isa bool}
     {br}i isa int8 evaluates to ... {value i isa int8}
     {br}i isa Graphic evaluates to ... {value i isa Graphic}
    }
}

注意事項

isa を使用して int8 の値が int であるかどうかを確認すると、isafalse を返します。値が指定と完全に同じデータ型を持つ場合のみ、isatrue を返します。

注意事項

isa 演算子は Type.subtype-of? に基づきます。ここで

v isa T

は次と等しくなります。

{{type-of v}.subtype-of? T}

注意事項

scalar? および number? も参照してください。