1、 变量定义
关键字def和var:其中def相当于定义不可变常量;var 是可以在需要时随时改变其值。即在脚本的整个生命周期内都可以为 var
变量赋予新值,而 def
变量在被首次赋予新值后将保持不变;
2、变量类型
有些和javascript类似,定义变量时,不必须定义变量类型,javafx可以进行“类型推断”;
3、控制台运行
javafx提供了一个和java类似的主函数function run(args:String[]).如果需要在控制台输入参与调试函数,则可把相关的功能函数放置在run函数内部调用,诸如下所示:
/*
* 变量声明区test
**/
def chs = "伟大的中国人民!伟大的中华民族!" ;
var result;
/*
* 函数调用区test
foo();
**/
foo();
/*
* 功能实现区
**/
function run(args : String[]){
def numOne = java.lang.Integer.parseInt(args[0]);
def numTwo = java.lang.Integer.parseInt(args[1]);
result = add(numOne,numTwo);
println("{args[0]}+{args[1]}={result}");
}
function foo(){
println("测试字符串串test:{chs}");
}
4、数据类型
内置的数据类型。JavaFX Script 编程语言支持字符串类型、数值类型、布尔 (true/false) 类型。还支持基于时间(持续时间)的类型,以及用于指示函数不返回任何值和指示缺少正常值的特殊类型。即
- | String |
- | Number 和 Integer 注意:从 SDK 1.1 开始,该语言还包含与 Java 编程语言中的数值类型相一致的数值类型。因此,数值类型的完整列表为:Byte 、Short 、Number 、Integer 、Long 、Float 、Double 和Character 。但大多数程序员在其编写的脚本中只需要使用Integer (或 Number )。如果您在学习该语言时具有 Java 编程语言背景并且需要完成一个必须使用其他数值类型的任务,那么请记住您的脚本现在可以使用这些附加类型。 |
- | Boolean |
- | Duration |
- | Void |
- | null |
全部类型表如下:
Type | Declaration | Default Value | Element Specifier | Cardinality | Literal or Creation Examples |
---|---|---|---|---|---|
|
|
|
| 1 Required |
|
|
|
|
| 1 Required |
|
|
|
|
| 1 Required |
|
|
|
|
| 1 Required |
|
|
|
|
| 1 Required |
|
|
|
|
| 0-1 Optional |
|
other class types |
|
| ClassName | 0-1 Optional |
|
function types |
|
|
| 0-1 Optional |
|
sequence types |
|
| ElementSpec | 0-n Sequence |
|
5、访问修饰符
- | 默认访问 默认访问称为“仅脚本”,是指在未提供访问修饰符的情况下获得的访问 |
- | package 访问修饰符 要使变量、函数或类可供同一个软件包中的其他代码访问,请使用 package 访问修饰符 |
- | protected 访问修饰符访问修饰符使变量或函数可供同一个软件包中的其他代码以及任何软件包中的子类访问 |
- | public 访问修饰符类、变量或函数的可见性最高。可以从任何软件包中的任何类或脚本对其进行访问 |
- | public-read 访问修饰符访问修饰符定义可公开读取但(在默认情况下)只能从当前脚本内部写入的变量。为了扩大该变量的写入访问级别,可以在该修饰符前面添加 package 或 protected 修饰符(即 package public-read 或protected public-read )。这会将该变量的写入访问级别设置为 package 或 protected 。 |
- | public-init 访问修饰符访问修饰符定义可以由任何软件包中的对象字面值公开初始化的变量。但是,后续的写入访问将按照与 public-read 相同的方式进行控制(默认情况下写入访问级别是脚本级别,但是该修饰符前面的 package 或protected 将相应地扩大访问级别)。始终可以从任何软件包读取此变量的值。 |
6、序列和表达式
序列定义为def strSeq = ["a","b","c","d"],def IntSeq =[1..100 step 2]默认step为1,也可谓负数;也可以指定序列类型,如下所示:def weekDays: String[] = ["Mon","Tue","Wed","Thu","Fri"];
表达式需要注意的是块表达式、范围表达式和for表达式,其中块表达式块表达式由一系列声明或表达式组成,它们括在花括号中并用分号进行分隔。块表达式的值是最后一个表达式的值。如果块表达式中不包含表达式,则其类型为 Void
。请注意,var
和 def
是表达式;范围表达式为形如[0..5]
,是一个范围表达式。默认情况下,相邻值之间的间隔为 1,但是您可以使用 step
关键字来指定一个不同的间隔。例如,定义一个由 1 到 10 之间的奇数构成的序列;for表达式只有一种格式,即为
for(x in xxx)。其他表达式if、while、以及break、continue、try catch finally等和java雷同。