JavaFX脚本语法总结(3)――其它基本型

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}");


执行结果:
x: 1


从结果可以看出,小数点以下的数值在转换证书过程中被抛弃。

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}");


执行结果:
x: 10 y: 7 z: 20


布尔型

布尔型用Boolean来定义。可以使用的值为true和false。
Boolean的使用方法与Java中的boolean相同,但是,否定运算符不一样,如下:
var x: Boolean = true;

println("not x: {not x}");


从此段代码可以看出,否定运算符使用了not。执行之后输出了true的相反值false。
not x: 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

本文出自 “郝春利个人博客” 博客,转载请与作者联系!

你可能感兴趣的:(职场,语法,JavaFX,休闲)