scala中提供了一種資料結構-陣列,其中儲存相同型別的元素的固定大小的連續集合。陣列用於儲存資料的集合,但它往往是更加有用認為陣列作為相同型別的變數的集合。
取替宣告單個變數,如number0, number1, ..., 和number99,宣告乙個陣列變數,如號碼和使用numbers[0],numbers[1],...,numbers[99]表示單個變數。本教程介紹了如何宣告陣列變數,建立陣列和使用索引的過程變數陣列。陣列的第乙個元素的索引是數字0和最後乙個元素的索引為元素的總數減去1。
要使用的程式的陣列,必須宣告乙個變數來引用陣列,必須指定陣列變數可以引用的型別。下面是語法宣告陣列變數:
varz:array[string]=newarray[string](3)orvarz =newarray[string](3)在這裡,z被宣告為字串陣列,最多可容納三個元素。可以將值分配給獨立的元素或可以訪問單個元素,這是可以做到通過使用類似於以下命令:
z(0)="zara";z(1)="nuha";z(4/2)="ayan"在這裡,最後乙個例子表明,在一般的索引可以是產生乙個全數字的表示式。定義陣列還有另一種方式:
varz =array("zara","nuha","ayan")下圖展示了陣列mylist。在這裡,mylist中擁有10個double值,索引是從0到9。
當要處理陣列元素,我們經常使用迴圈,因為所有的陣列中的元素具有相同的型別,並且陣列的大小是已知的。這裡是展示如何建立,初始化和處理陣列的完整的例子:
objecttest// summing all elementsvartotal =0.0;for(i讓我們編譯和執行上面的程式,這將產生以下結果:
c:/>scalac test.scala有很多情況下,需要定義和使用多維陣列(即陣列的元素陣列)。例如,矩陣和**結構的例項可以實現為二維陣列。c:/>scala test1.92.93.43.5totalis11.7maxis3.5c:/>
scala不直接支援多維陣列,並提供各種方法來處理任何尺寸陣列。以下是定義的二維陣列的例項:
varmymatrix =ofdim[int](3,3)這是乙個具有每個都是整數,它有三個元素陣列3元素的陣列。下面的**展示了如何處理多維陣列:
importarray._讓我們編譯和執行上面的程式,這將產生以下結果:objecttest}// print two dimensional arrayfor(i
c:/>scalac test.scala以下是使用concat()方法來連線兩個陣列的例子。可以通過多個陣列作為引數傳遞給concat()方法。c:/>scala test012012012c:/>
importarray._讓我們編譯和執行上面的程式,這將產生以下結果:objecttest}}
c:/>scalac test.scala下面是示例,這使得使用range() 方法來產生包含在給定的範圍內增加整數序列的陣列。可以使用最後乙個引數建立序列; 如果不使用最後乙個引數,然後一步將被假定為1。c:/>scala test1.92.93.43.58.97.90.41.5c:/>
importarray._objecttestprintln()for(x
結果為:
c:/>scalac test.scalac:/>scala test101214161810111213141516171819
此下為陣列常用的也是重要的方法:
scala 學習筆記六 推導
1 介紹 在scala中,推導將生成器 過濾器 和定義組合在一起。2 例子 有一種將result用作val 而不是var 的方式,就地 構建result,而不是逐項構建,利用yield關鍵字,當你宣告yield n時,它會把n交出來,使其成為result的一部分,下面的例子 yield 總是會填充容...
Scala學習筆記 陣列
對於scala來說,陣列是一塊相當總要的內容,因此掌握是十分重要的。陣列分為兩種 定長陣列 array 變長陣列 arraybuffer array 10個整數的陣列,所有元素的初始化為0 val nums new arraystring 長度為2的array string 型別是推斷出來的 注 已...
Scala學習筆記 型別引數化陣列
scala看得頭痛,記一下筆記。valgreetstrings newarray string 3 greetstrings 0 hello greetstrings 1 greetstrings 2 world n for i 0to2 print greetstrings i 說明 1 scal...