はじめに
普段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)
}
}
参考
以下のサイトを参考にさせて頂きました。