for文の書き換え【Scala】【for】【foreach】

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

今回は、Scalaのfor文を関数を使って書き換えてみようと思います。

はじめに

こちらに「Int」に関する情報が載っています。

スポンサーリンク




for文

scala> for ( i <- 1 to 10 ) println(i)
1
2
3
4
5
6
7
8
9
10

これを書き換えていきます。

for文の書き換え

① def to (end: Int): Inclusive
② def to (end: Int, step: Int): Inclusive

上記の「to」メソッドを利用して2通りの書き方をしてみます。
また、「foreach」関数を利用して書き換えていきます。

①シンプルな書き方

scala> 1.to(10).foreach{println}
1
2
3
4
5
6
7
8
9
10

これは、「1づつ増加する」ことが確定条件である場合に利用できる書き方です。
今回のfor文の書き換えの場合はこちらがベストプラクティスだと思います。

②増加値を指定する書き方

scala> 1.to(10, 1).foreach{println}
2
3
4
5
6
7
8
9
10

こちらの「to」メソッドは第2引数に増加値を取ります。
そのため「to(10, 1)」の書き方で、お題のfor文の書き換えは可能になります。

②のメソッドは他の利用方法もあります。
2づつ増加」させたい場合や「1づつ減少」させたい場合などに役に立ちます。

②ー1「2づつ増加」させたい場合の書き方

scala> 1.to(10, 2).foreach{println}
1
3
5
7
9

第2引数に「2」を指定したことで「1」から「2づつ増加」させた値を出力することができました。

②ー2「1づつ減少」させたい場合の書き方

scala> 10.to(1, -1).foreach{println}
10
9
8
7
6
5
4
3
2
1

はじめの値を「10」第2引数に「-1」を指定したことで、
「10」から「1づつ減少」させた値を出力することができました。

まとめ

Scalaにおいてfor文はなるべく使わずにコードを書くことが推奨されています。

そのプロジェクトの文化などにもよると思いますが、

このような書き方もあるんだなと選択肢にあることで、より美しいコードの書き方に気づくことができるかもしれません。

byたくじろう(@takujiro_0529)

スポンサーリンク

スポンサーリンク



シェアする

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

フォローする