日志 教程
当前位置: 教程  >  游戏开发  >  手机游戏开发  >  正文

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

作者:郭同学 发表于 2011/9/6 23:06:03     评论(1)     阅读(4821)     
 

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

评论
显示
悄悄话
    夏厚明
  • 夏厚明的评论:
  •   那里有程序的资料啊,谁能告诉我 ,谢谢
    2011-11-01 18:45
汇众教育官网 | 联系方式 | 版权声明 | 友情链接
Copyright 2008© 汇众益智(北京)教育科技有限公司. All Rights Reserved
京ICP备09092043号 京公网安备11010802009023号