あるプログラマの日記

プログラマのメモ、出来事、考えたこと、勉強とかの雑記

List の使い方(続き3)

リスト先頭から指定要素数の後のリストを得る。( drop )

scala> val foo = List(4, 5, 6, 7)
foo: List[Int] = List(4, 5, 6, 7)

scala> foo.drop(2)
res0: List[Int] = List(6, 7)

scala> foo.drop(1)
res1: List[Int] = List(5, 6, 7)

scala> foo.drop(3)
res2: List[Int] = List(7)

リスト先頭から指定要素数のリストを得る。( take )

scala> foo.take(2)
res3: List[Int] = List(4, 5)

scala> foo.take(1)
res4: List[Int] = List(4)

scala> foo.take(3)
res5: List[Int] = List(4, 5, 6)

指定インデックスの位置でリストを分割して、分割したペアのリストを得る。

scala> foo.splitAt(2)
res6: (List[Int], List[Int]) = (List(4, 5),List(6, 7))

このリストのペアの入れ物の型はタプル(tuple) Tuple2

  • Scalaでは、オブジェクト.メソッド(1つの引数) の形式の場合は . ( ) を省略できる。
scala> val (a, b) = foo splitAt 3
a: List[Int] = List(4, 5, 6)
b: List[Int] = List(7)

scala> a
res7: List[Int] = List(4, 5, 6)

リストのおきまりの文字列表現

scala> foo.toString
res8: String = List(4, 5, 6, 7)

リストで独自に文字列表現をしたいときは mkString を使う。

  • mkStringは前後の括弧部分とセパレータの引数3つのメソッドとセパレータだけを指定するメソッドの2種類ある。
scala> foo.mkString("{", "-", "}")
res9: String = {4-5-6-7}

scala> foo mkString ""
res10: String = 4567

scala>  foo mkString "/"
res11: String = 4/5/6/7

scala>  foo.mkString("[", "/", "]")
res12: String = [4/5/6/7]