scala自學日記(6)-陣列的初始化以及迴圈
阿新 • • 發佈:2019-02-11
1.scala裡面的陣列和java裡面的比較類似,但是又有些不同,陣列的初始化方法比java裡面多了一種方式,具體如下:
程式碼如下:
package com.scala.demo
/**
* 這裡主要介紹陣列的使用
*/
object ArrayDemo2 {
val array=new Array[Int](3)
val array2=new Array[Int](3)
val array3=new Array[Int](3)
/**
* 陣列賦值操作1
*/
def init1()
{
array(0)=1
array(1)=2
array(2)=3
}
/**
* 陣列複製操作2
*/
def init2()
{
array2.update(0,4)
array2.update(1,5)
array2.update(2,6)
}
/**
* 輸出資料
*/
def out(array:Array[Int])
{
val length=array.length
for(i<- 0 to length-1) //注意此處的i迴圈
println(array.apply(i))//array.apply(i)==array(i)
}
def main(args:Array[String])
{
out(array3)
init1()
out(array)
init2()
out(array2)
}
}
從上面的例子程式碼當中我們可以看到陣列初始化有2種方式:
一種是:
array(0)=1
array(1)=2
array(2)=3
Scala裡所以東西都是物件,陣列也不例外。陣列賦值其實也是一個方法完成的。
上面的程式碼會被編譯器轉換成兩個引數的方法,就是第二種方式:
array2.update(0,4)
array2.update(1,5)
array2.update(2,6)
注意上面的迴圈方式
這裡for迴圈用了 0 to length-1
,很容易理解,就是從0到length,預設步進1.
當方法引數只有一個的時候,可以不寫括號和點,
完整的寫法應該是:
i<-0.to(length-1)
2.迴圈package com.scala.demo
/**
* 主要介紹迴圈的方式
*/
object ArrayDemo1 {
//var a:Array[Int]={1;2;3;4;5;6;7;8;9}
/**
* 使用while
*/
def ergodic1(array: Array[Int]) {
println("ergodic1 run!")
var i = 0
while (i < array.length) {
println(array(i))
i+=1 //scala裡面無法使用i++或者==i,只能使用i+=1或者i=i+1
}
}
/**
* 使用java5裡面的foreach
*/
def ergodic2(array: Array[Int]) {
println("ergodic2 run!")
array.foreach(value => println(value)) //其實是一個匿名方法
//或者這樣:array.foreach((value:Int)=>println(value))
}
/**
* 使用foreach的精簡版本...........
*/
def ergodic3(array: Array[Int]) {
println("ergodic3 run!")
array.foreach(println) //好簡潔的寫法
}
/**
* 使用for迴圈試試
*/
def ergodic4(array: Array[Int]) {
println("ergodic4 run!")
for (arg <- array) //for 迴圈的寫法
{
println(arg)
}
}
def main(args: Array[String]) {
var array=new Array[Int](3)
array(0)=1
array(1)=2
array(2)=3
ergodic1(array)
ergodic2(array)
ergodic3(array)
ergodic4(array)
}
}