読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

List

可変長の配列(javaのList)を使いたい場合、scala.Listが使えます。

  • 同じような機能を持つクラスとして、scala.Arrayがありますが、
  • 可変長なので要素の追加などが可能ですが、List自体は不変です。
    • 追加APIは、元のListに要素を追加した別のListを返します。
    • 元のListは変更されません。
    • Java使いは注意。

生成は「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