初心者が最初につまづく基本的なこと
Stringの型と戻り値を明示した厳格な書き方
object HelloWorld { def main(args: Array[String]): Unit = { val str: String = "Hello!" HelloWorld.say(str) } def say(s: String): Unit = { println(s) }
Stringの型と戻り値を省略した書き方
object HelloWorld { def main(args: Array[String] { val str = "Hello!" HelloWorld.say(str) } def say(s: String) { println(s) } }
コンパイラは構文を解析し、変数の値が文字列なのか、それとも数値なのか自動的に解析してくれます(これを型推論と言う)。
上で挙げた例は、型推論があるおかげでString型の宣言を明示せずに省いても良いという点と、Unitという戻り値を省略すれば、自動的に戻り値がUnitになってくれるということを意味してます。
どちらも動作は同じなのですが初心者からすると、複数のまったく違う文法があることにきづいた瞬間、混乱しちゃいますよね。