List
可変長の配列(javaのList)を使いたい場合、scala.Listが使えます。
- 同じような機能を持つクラスとして、scala.Arrayがありますが、
- scala.Arrayは固定長で、Javaにおける配列(new int[]とか)に近い。
- scala.Listは可変長で、JavaにおけるListに近い。
- 可変長なので要素の追加などが可能ですが、List自体は不変です。
生成は「List(<要素>, ...)」といった感じでできます。また、Nilという空のListを示すobjectがあり、そこから生成することも可能です。
// 「List(<要素>, ...)」でListを生成できる。 { println("\n---list") var list = List( 1, 2, 3, 4 ) list.foreach( i => println( i ) ) // Arrayと同じくforeachとかも使える。 } // Nilという空のリストが定義されていて、 // そこから「<要素> :: <List> 」(Listの先頭に要素を追加したListを返す) // で追加していくこともできる。 { println("\n---Nil") var empty = Nil empty.foreach( i => println( i ) ) println("\n-- ::") var list2 = 1 :: 2 :: 3 :: 4 :: Nil list2.foreach( i => println( i ) ) } // 追加しても元のListは変化しない { // リストに要素を追加 var list = List( 1, 2, 3, 4 ) // 元のリスト println("\n---add") ( 10 :: list ).foreach( i => println( i ) ) // 追加しても元のListは変化しない println("\n--") list.foreach( i => println( i ) ) }
執行結果です。
---list 1 2 3 4 ---Nil -- :: 1 2 3 4 ---add 10 1 2 3 4 -- 1 2 3 4