JavaFX教程-函数、数组、表达式和操作

JavaFX函数代表了JavaFX编程语言的纯函数子集。函数体可以仅包含一组变量声明和一个返回语句。JavaFX也提供了过程(procedures)(被调用的操作,详见下面关于操作的章节),里面可以包括任意数量的声明、条件语句、循环条件、try/catch等等。语句在函数中的给定顺序并不很重要。下面是一个简单的函数程序的例如:

	function z(a,b) {
	   var x = a + b;
	   var y = a - b;
	   return sq(x) / sq (y);
	}
	
	function sq(n) {return n * n;}
	
	function main() {
	   return z(5, 10);
	}

尽管JavaFX语言是静态类型的,但这里并没有强制的类型声明(后面会详细叙述)。

最常用的数据结构是数组,它在JavaFX中通过方括弧和逗号来声明:
	var week_days = ["Mon","Tue","Wed","Thur","Fri"];
	var days = [week_days, ["Sat","Sun"]];

数组代表了一组顺序的对象。JavaFX中的数组本身不是对象,而且不能嵌套。创建嵌套数组的表达式(例如上面“days”的初始化方式)会被自动扁平化,例如:

	days == ["Mon","Tue","Wed","Thur","Fri","Sat","Sun"]; // returns true

数组的大小可以通过JavaFX的sizeof操作符确定:

	var n = sizeof days; // n = 7

对于数组成员形成数列(arithmetic series)的数组,JavaFX提供了一种简写符号:“ ..”。下面提供了定义阶乘函数和奇数求和函数的示例,其中“result”的数值是1至100中奇数的和:
	function fac(n) {return product([1..n]);}
	var result = sum([1,3..100]);

数组中的所有元素必须是同一种类型。

数组可以像在Java中那样通过索引访问:

        var wednesday = days[2];

JavaFX中的 []操作符还可用来表示选择(类似XPath的用法)。在这种情况下, []中包含的表达式应是一个布尔表达式。此表达式可以返回一个新的数组,此数组中只包含满足 []中断言(predicate)的成员。

就像在XPath一样,可以在[]操作符包含的断言中通过.操作符访问上下文对象。例如:

	var nums = [1,2,3,4];
	var numsGreaterThanTwo = nums[. > 2]; // yields [3, 4]

另一种方法,也可以将变量声明为上下文对象。例如,这种方式与上面的方式等价:

	numsGreaterThanTwo = nums[n|n > 2];

JavaFX中的indexof操作符返回对象在数组中的顺序位置(类似XPath中的position()函数)。

下面list的car和cdr可以用选择表达式来表示:

	function car(list) {return list[indexof . == 0];}
	function cdr(list) {return list[indexof . > 0];}

当然,car可以用更简单、高效的方式表示:

	function car(list) {return list[0];}

例如:

	var list = [1..10];
	car(list); // yields 1
	cdr(list); // yields [2,3,4,5,6,7,8,9,10]

JavaFX中的空数组[]null等价,例如:

	[] == null // yields true
	sizeof null // yields 0

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13270562/viewspace-209688/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/13270562/viewspace-209688/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值