Scalaのシンプルな多重ループの書き方【Scala】【for】【多重ループ】

こんにちは、たくじろう(@takujiro_0529)です。

今回は多重ループをfor文で実装した際に、Javaとどういった違いがあるのかと、どんなタイミングで利用できるのかを検証したいと思います。

スポンサーリンク




Javaでの多重ループ

for ( int i = 0; i < 3; i++){
    for( int j = 0; j < 3; j++){
        System.out.println(j);
    };
};

Scalaでの多重ループ

for { i <- 0 unit 3
           j <- 0 unit 3
     } println(j)

違い

2回for文を書かなくても、いっぺんに記載することで実装することができます。

使用例

実際にどういったタイミングでこのシンプルな多重ループを利用するかを考えてみました。

Listの中にさらにListがある構造のListを作成し、その要素を出力するような実装が求められた時に利用できそうです。

scala> List(
     |  List("A", "B", "C"),
     |  List("D", "E", "F")
     | )
res2: List[List[String]] = List(List(A, B, C), List(D, E, F))

scala> for{ list <- res2
     |      item <- list
     | } println(item)
A
B
C
D
E
F

まとめ

このようにListの奥深くの要素を取り出す時などは、このように書くことでスマートに実装することができます。

byたくじろう(@takujiro_0529)

スポンサーリンク

スポンサーリンク



シェアする

  • このエントリーをはてなブックマークに追加

フォローする