JavaFXスクリプトで使われる型


JavaFXスクリプトで使われるデータの型(以後「JavaFX型」と呼びます)は、 JavaFXの式が保持できる値の種類を記述します。 すべてのJavaFXの変数、関数、そして式は型を持っていて、ほとんどの場合文脈から決定されます。 JavaFXの変数はその型を明示的に宣言でき、関数は引数と戻り値の型を明示的に宣言できます。 JavaFXの型(Voidを除く)は要素指示子とカーディナリティで構成されます。 要素指示子は何の型を適用するのかを決定し、カーディナリティはそれらを何個持つのかを決定します。


要素指示子

要素指示子はクラスまたは関数シグネチャです。 クラスはJavaFXクラスとJavaクラスの両方を含みます。 ここにクラスの要素指示子を説明する例があります。

MyClass
java.util.Map
Duration
javafx.animation.Timeline
Integer

関数シグネチャは引数と戻り値から構成されます。 関数シグネチャは無名で、そのシグネチャを実装している可能性のある特定の関数に縛られません。 (訳注:意味不明ですね。) ここに関数シグネチャの要素指示子を説明する例があります。

function(:Number):Boolean
function(:Integer,:Integer):SplotchedBall
function():Integer

関数型にはさらに詳しい情報があります。

すべての要素指示子はjava.lang.Objectのサブタイプです。

正式な型の体系では、要素指示子は基礎型(ground type)と呼ばれます。


カーディナリティ

JavaFX型における型のカーディナリティは、要素をいくつ持つのかを決定します。

カーディナリティ:任意 (0 or 1)

任意のカーディナリティは、0個または1個の要素があることを意味します。 これはほとんどの型に関連するカーディナリティで、現在のところ、ユーザが定義したクラスのすべてを含んでいます。 もしあなたがFooクラスを定義するなら、JavaFX型の"Foo"は、要素指示子と任意のカーディナリティを持ちます。

例:

var x : Foo;

xは(1個の)Fooのインスタンスを持つことができるか、またはnull、存在しない値(要素無し)を設定できる と言えます。

カーディナリティ:必須 (1)

必須のカーディナリティは、ひとつの要素が必ずあることを意味します。 これはビルトイン型であるString, Integer, Number, Boolean, Durationに関連するカーディリティです。

例:

var k : Integer;

kは1個のInteger型を持っていると言えます。

存在しない値やnullは、必須のカーディナリティの型の値として許されません。 必須のカーディナリティの型にnullを割り当てようとすると、デフォルト値に変換されます。 (参照 デフォルト値) 必須のカーディナリティの型にnullを変換しようとすると、デフォルト値に変換されます。 (訳注:重複か。)

カーディナリティ:配列 (0-n)

配列のカーディナリティは、複数の要素(ゼロ個も含めて)があり得ることを意味します。 これは明確に宣言された配列に関連するカーディナリティです。

例:

var seq : Integer[];

seqはいくつかのInteger型を持つことができると言えます。


Home