LoginSignup
17
19

More than 5 years have passed since last update.

最初にハマるScalaの省略記法(無名関数編)

Last updated at Posted at 2015-08-09

はじめに

普段Javaで開発している私が、Scalaを覚えようとネット上のサンプルソースを読んだ際最初に感じたのが
「あれ、さっき見たソースとなんか違う..」
でした。

調べたところScalaでは多くの 省略記法 が存在し、 同じ処理でも様々な書き方ができるそうで、

  • 自明な型や変数を省略することで、スッキリした可読性の高いコードになる
  • カッコの省略やドット(.)をスペースに置換えにより、自然言語に近い記述となる
  • 単純にタイプ量が減り、読み書きの時間が削減され生産性向上につながる

などのメリットがあるそうです。

今回は無名関数の省略記法についてまとめたので、参考にしてみてください。

無名関数の省略記法

AnonymousFunctionSample.scala

object AnonymousFunctionSample {
  def main(args: Array[String]) {

    val strs = Array("foo", "bar")

    //以下、全て同じ結果を返す

    // 基本となる無名関数の文法「(変数名 :型) => { 処理 }」
    strs.foreach((str :String) => { println(str) })

    // 変数の型は省略可能。省略した場合は型推論が行われる
    strs.foreach(str => { println(str) })

    // 処理ブロックの{}は省略可能
    strs.foreach(str => println(str))

    // 変数名に「_」を利用すると変数宣言が省略可能
    strs.foreach(println(_))

    // 処理内での引数が1つとなる場合、変数そのものを省略可能
    strs.foreach(println)
  }
}

参考

以下のサイトを参考にさせて頂きました。

17
19
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
19