変数

オブジェクトの生成ができたので、オブジェクトを変数に代入してみることにします。

JavaFX Script の変数の定義は JavaScript と同様に var を使います。しかし、JavaFX は静的型づけ言語なので、型をちゃんとしていしなくてはダメ。型の指定は、変数名の後にコロンと型名を書きます。

var x:Integer; // 整数の変数
var frame:Frame; // Frame 型の変数

インスタンシエーションでは行末にセミコロンはいりませんでしたが、ここでは必要です。これが間違えやすいんだけど、まぁしかたないです。

また、JavaFX Script には Java でいうところのプリミティブ型はないです。数値の場合、整数は Integer クラス、整数以外は Number クラスになります。これについては、またいつか触れたいと思います。

さて、型を指定するのは必須なのですが、明らかに型が推定できる場合は型の指定を省略することができます。たとえば...

var x:Integer;
x = 10;

は、次のように書くことができます。

var x;
x = 10;

これは 10 という数字が明らかに Integer なので、x は Integer であると推定できるので省略できるのです。

こういうコードだと、なんだか動的型つけ言語みたいですね。でも、次のようにはかけません。

var x;
x = 10;
x = "Hello, World!"; // これは NG

最初の代入文と、次の代入文で型が異なるので、エラーが発生してしまいます。

file:/C:/OpenJFX/samples/Variable.fx:3: incompatible types: expected Integer, found String in "Hello, World!"