`
suifongqi
  • 浏览: 54248 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JFX学习笔记 三 重修语法之数组

    博客分类:
  • JAVA
阅读更多
相当郁闷,本来写好的,结果遭遇PC重启,又....只能当再次复习了
来吧数组,JFX中的数组据说是常用数据结构,并且也像JAVA一样数组中只能是相同类型的元素。在没有具体研究下去之前,我还是有几个疑问:
1 JFX的数组是否像JAVA中一样是对象的存在,简单一点就是数组对象.方法()/数组对象.属性
2 JFX的数组能否自增长
3 遍历方式
在没有具体接触JFX数组特征前就这么多疑问了,至于JFX数组算值类型还是引用类型,JVM里是怎么实现的,这些就暂且不去想了,刚过菜鸟级嘛,不给自己找麻烦(找个台阶下嘿嘿
package jfx;
import java.lang.System;
// place your code here
var week_days = ["Mon","Tue","Wed","Thur","Fri"];
var days = [week_days, ["Sat","Sun"]];

for(s in days)
{
  System.out.println(s); 
}
这里我创建了两个数组,第二个数组days是由week_days和["Sat","Sun"]构成的,尝试一下这么写行不行:
var nums = [1,2,3]+[4,5,6,7];
感觉上好像可以对吧,但却是错的,因为JFX的+,不支持此项操作规则。写过运算符重载的同志都知道,语法中的操作符具备的功能也是代码定义的。
看看我之前提出的疑问,我写了这样的代码:
var n = days.length;
System.out.println(n);
让我遗憾的是上面的代码不正确,这说明JFX中的数组变量并非以对象形式存在。想获得数组长度得使用sizeof关键字
var n = sizeof days;
System.out.println(n);
JFX数组有一些偷懒的写法,例如数组中包含一个数列(1到100的奇数之类的),可以用".."来搞定,如下:
[1,3..100],如果其实为小树则为增序排,相反则为降序,step可以为1也可以为其它值
现在来看看如何遍历。其实老办法我已经在上面的代码中写出了使用for语句,注意一点
for(s in days)
{
  System.out.println(s); 
}
变量S前面没有var关键字,确认一下,这里不是我漏掉,这里不能加var至于为什么就得去问定义语法的同志了。
当然数组可以像在Java中那样通过索引访问:var wednesday = days[2];
得到的结果是Wed,说明数组索引也是从0开始
当然JFX还给了一些方便但很别扭的其它方式访问,如下:
var nums = [1,2,3,4];
var numsGreaterThanTwo = nums[. > 2]; // yields [3, 4]
在数组中使用表达式是不是很奇怪呵呵(不过很遗憾,我始终无法正确运行这段代码,下来再找找原因)var numsGreaterThanTwo = nums[cc|cc > 2];与上面相同。注意一点不能直接写成var numsGreaterThanTwo = nums[cc > 2];变量CC类型缺省被解释成了object,无法做>运算,也不能在此之前给出var cc =1;因为这里我们不是要Boolean的结果,而是要把数组的值取出给numsGreaterThanTwo ,我理解成,CC是用于存取nums里符合条件的元素。那为什么不写成CC>2而是cc|cc>2 ? 学习笔记嘛。。。我也不清楚,我想继续看下去会清楚的,这里把问题记下了。
其它获取方式:JavaFX中的空数组[]与null等价
[] == null // yields true
sizeof null // yields 0
sunm[indexof.==0]//取第一个元素
20日未完继续










1
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics