开发者学堂课程【Scala 核心编程 - 进阶:定长数组的使用】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9024
定长数组的使用
内容介绍:
一、第一种方式定长数组
二、第二种方式定义数组
一、第一种方式定长数组
1.说明
这里的数组等同于 Java 中的数组,中括号的类型就是数组的类型。
Val arr1=new array[int](10)
中括号后面指定泛型。小括号代表指定的数组大小,默认每个元素是零,数组的每个元素的访问是小括号儿。
//赋值 集合元素采用小括号访问
2.案例演示
在”chapter10”中新建”arraydemo01”文件夹。
进行代码编写
//说明
//1.创建了一个array对象。
//2.[int]表示泛型,即该数组中,只能存放Int。
//3.[any]表示该数组可以存放任意类型。
val arr01=new array[int](4)
Println(arr01.length)
Println(“arr01(0)=”+arr01(0))
For(i<-arr01){
Println(i)
}
Println(“...............”)
arr01(3)=10
For(i<-arr01){
Println(i)
}
最后演示的结果如下:
3.反编译
反编译之后 val arr01=new array[int](4)//底层 int[] arr01=new int[4]
打开反编译工具,找到 chapter10,底层大致相同。
二、第二种方式定义数组
1.说明
在定义数组时,直接赋值
//使用 apply 方法创建数组对象
有的数组在创建的时候就直接会指定它的内容,但是这样指定的内容就与其他的数组不相关,直接用 array 分解,底层用的是 apply 方法。而 array 中的数组有整数也有字符串。
array 对应的就是 any。初始化的时候全是整数,它对应的就是泛型。
2.代码演示
创建一个 arraydemo 文件夹。
//说明
//1.使用的是object array 的apply。
//2.(1,3,”xxx”)是直接初始化数组,相当于你给了整数和””,这个数组的泛型就是any。
//3.遍历方向一样。
Var arr02=array(1,3,”xxx”)
如果改为Var arr02=array(1,3,90),它的泛型就是Int。
比如arr(01)=”xx”是不可以的,类型不匹配。
For( i<-arr02){
Println(i)
}
运行一下没有任何问题。
我们再讲一种遍历方式,可以使用传统的方式遍历,使用下标的方式遍历。
For (index<-0 until arr02.length)
//如果写 to 就跟length-1。
Printf(“arr02[%d]=%s”,index,arr02(index)+”/t”)
这样输出的时候转成字符串输出了,单从指数中演示的效果来说,就是可以的。
因为真正用的时候就会把类型代入进去。