焼け石に肉

新米プログラマの学習記録日記です。Scalaに興味があるので、ScalaとPlay Frameworkの勉強メモを残していこうと思います。

【Scala】コップ本の自分用メモ

Scala&Play Frameworkでのプロジェクトが始まることになるので、必読書のコップ本を読んでいます。
リストの重要なメソッド集です。

    // 空のリスト
    // var list1 = Nil でも可
    var list1 = List()

    // 三個の値を持つ新しいList[String]を作る
    var list2 = List("Messi", "CR7", "Neymar")

    // 三個の値を持つ新しいList[String]を作る
    var list3 = "Messi" :: "CR7" :: "Neymar" :: Nil

    // 2個のリストを連結し、新しいリストを作成する
    var list4 = List("Messi", "Neymar") ::: List("CR7", "Bale")

    // list3の添字2の要素を返す(Neymarが返される)
    var list5 = list3(2)

    // list3の中で、長さが3の要素の数が返される(1が返される)
    var length4 = list3.count(s => s.length == 3)

    // 先頭の2要素を取り除いたlist3を返す
    list3.drop(2)

    // 末尾の2要素を取り除いたlist4を返す
    list4.dropRight(2)

    // list3の中に値が”Neymar”があるかどうかを返す。trueが返される
    var boolean1 = list3.exists(s => s == "Neymar")

    // list3に含まれる長さが4のすべての要素を返す
    var list6 = list3.filter(s => s.length == 4)

    // list3のすべての要素について、末尾の文字が”i”になっているかどうかを返す
    var list7 = list3.forall(s => s.endsWith("i"))

    // リストの先頭要素を返す
    list3.head

    // リストの最後の要素を返す
    list3.last

    // リストから末尾の要素を除いた残りのリストを返す
    var list8 = list3.init

    // リストの各要素のXを追加したものから構成されるリストを返す
    var list9 = list3.map(s => s + "X")

    // リストの要素を並べた文字列を返す
    var str: String = list3.mkString(" , ")

    // リストに含まれる長さが4以外のすべての要素を順に並べたリストを返す
    var list10 = list9.filterNot(s => s.length == 4)

    // リストのすべての要素を逆に並べたリスト
    var list11 = list10.reverse

    // リストのすべての要素から、先頭文字小文字にしてアルファベット順を決めて、その順序にしたがったリストを作って返す 
    var list12 = list11.sortWith((s,t) => s.charAt(0).toLower < t.charAt(0).toLower)

    // リストから先頭要素を取り除いたリストを返す
    var list13 = list12.tail