1. 程式人生 > >scala自學日記(6)-陣列的初始化以及迴圈

scala自學日記(6)-陣列的初始化以及迴圈

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)   } }