作者:郝春利
轉貼請註明出處:http://blog.csdn.net/froole
JavaFX中的數值
在JavaFX腳本語言中,數值型分爲整數(Integer)和浮動小數(Number)兩種。Integer型也就是Java中的int型,32位帶有符號的整數。同樣,Number型即爲Java中的double型,其中正負符號佔用1位,指數部分11位,假數佔用52位。
以下是定義數值的例子:
var num1: Integer = 1;
var num2: Number = 1.0;
var num3 = 5; // 自動定義爲Integer
var num4 = 10.0; // 自動定義爲Number
在早期版本中,Integer可以擴展到long、java.math.BigInteger類等,但是,正是版把Integer的範圍縮小到int型。
有一點需要注意,可以任意將Integer型值帶入到Number型變量,但是,相反如果要將Number型值帶入到Integer,在變異的時候會有數據缺失錯誤的提示。此特徵跟Java相同。如果要轉換Number型值爲Integer值,可以使用intValue方法,如下:
var x: Integer;
var y: Number = 1.5;
x = y.intValue();
println("x: {x}");
執行結果:
從結果可以看出,小數點以下的數值在轉換證書過程中被拋棄。
intValue也可以直接寫在數值後面,如下:
var x: Integer = 10.0.intValue();
var y: Integer = (2 + 5.5).intValue();
在上面的表達式中,2是Integer型,5.5是Number型,Integer型和Number型的計算結果爲Number型,此特點跟Java相同。
使用intValue轉換Number型,可能多少讓人感覺有點特別。當然,同樣的處理,也可以像Java那樣直接進行型和型的轉換。但是JavaFX腳本中型轉換的方法跟Java不同,需要使用as關鍵字,如下:
var x: Integer = 10.0 as Integer;
var y: Integer = (2 + 5.5) as Integer;
var a: Number = 20.3;
var z: Integer = a as Integer;
println("x: {x} y: {y} z: {z}");
執行結果:
布爾型
布爾型用Boolean來定義。可以使用的值爲true和false。
Boolean的使用方法與Java中的boolean相同,但是,否定運算符不一樣,如下:
var x: Boolean = true;
println("not x: {not x}");
從此段代碼可以看出,否定運算符使用了not。執行之後輸出了true的相反值false。
時間間隔
前文已經介紹,JavaFX腳本中的時間間隔型可以使用Duration。
var onemillis = 1ms; // 1 毫秒
var onesec = 1s; // 1 秒
var onemin = 1m; // 1 分
var onehour = 1h; // 1 小時
在被定義數值的後面加上ms、s、m或者h將被默認爲Duration行,分別表示毫秒、秒、分和小時的時間。
奈秒與天沒有可被直接定義的單位,但是可以用其他單位的時間數值代替,如下:
var onenanos = 0.001ms; // 1 奈秒
var oneday = 24h; // 1 天
從上面的代碼中,可以看出,Duration型的定義可以使用小數。
不同的時間單位間可以進行對比運算,如下:
var onemillis = 1ms; // 1 毫秒
var onesec = 1s; // 1 秒
var onemin = 1m; // 1 分
var onehour = 1h; // 1 小時
println("{onesec}/1000 == {onemillis} : {onesec/1000 == onemillis}");
println("{onehour} == {onemin} * 60 : {onehour == onemin*60}");
執行結果:
1000ms/1000 == 1ms : true
3600000ms == 60000ms * 60 : true
Void和null
Void與Java中的void相同,在方法/函數不返回任何值的情況下使用。
null不是型,是數值。他不僅可以項Java中的null一樣使用,而且,還可以如下使用:
var x: Integer[] = [];
println("x == null : {x == null}");
var text = "";
println("text == null : {text == null}");
[]相當於書組,在JavaFX腳本中被稱之爲序列。詳細的內容將在今後的文章中進行說明。此段代碼的意思爲,Integer型的序列變量x中沒有任何要素;text是一個空的文字串。
對比之後的執行結果如下:
x == null : true
text == null : true
也就是說,空的序列和空的文字串,在JavaFX都被認爲是null
待續
<script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
轉貼請註明出處:http://blog.csdn.net/froole