Scala 2.10.0 M3試してみる記事はいったんおいといて、前からよく見かけるScala(に限った話でもないですが)に関する誤解(とも言い切れないですが)について少し書いてみます。 Scalaで以下のようなコードがあったとき、 def add(x: Int, y: Int): Int = { return x + y } 「Scalaでは最後の処理の値が返り値になるので、returnは不要」であるため、 def add(x: Int, y: Int): Int = { x + y } のように書けるのだ、という説明をよく見かけます。 しかし、この説明は正しくありません。「最後の処理」といいますが、それは、一体「何の」最後の処理なのでしょうか。 この説明の問題を理解するには、Scalaが「式」ベースの言語である事を理解する必要があります。まず、Scalaのメソッド定義の一般形は def