【初心者向け】JavaとScalaを同時にマスターしよう!Vol. 13

こんにちは!ぐちです。

今回はスイスアーミーナイフの続きをご紹介します!Scalaのfor式は本当に便利だ!!と感じると思いますよ。

前回のVol.12はこちらからどうぞ。

フィルター

繰り返し処理を行う際に特定のデータにだけ適用したいときがあると思いますが、条件分岐しないといけないですよね?Scalaではフィルターという機能があるので、今回はその紹介みたいになっちゃいますね。

Java

まずはJavaでファイル一覧から処理をファイルだけに絞る処理を書いてみましょう!ファイルかどうかの判定にはisFile()を用います。

import java.io.File;

public class Main {
    public static void main(String[] args) {
        File[] files = (new File(".")).listFiles();
        for(File f : files) {
            if(f.isFile()) {
                System.out.println(f);
            }
        }
    }
}

まぁよくある形ですね!この条件分岐が増えてくると、もうなにがなんだかって状態になりませんか?笑

Scala

続きまして、Scalaで同様のコードを見てみましょう!

object Main {
    def main(args: Array[String]): Unit = {
        val files = (new java.io.File(".")).listFiles()
        for(f <- files if f.isFile)
                println(f)
    }
}

一見何も変わってないように見えますが、よーく見てください。for式if式が増えています。このif式は繰り返し処理を行うデータを絞り込むことができます。もちろん複数の条件を書くこともできます。

繰り返しの絞り込みだから、for式に含まれるのは非常に合理的でいいですよね!

では今回はこの辺で。