まーぽんって誰がつけたの?

iOS→Scala→インフラなおじさん技術メモ

Scalaでprintlnの括弧はなぜ省略できない?

Scalaだとメソッド呼び出しで、ドットと括弧は省略できるって教えてもらったんだけど、printlnの括弧は省略すると怒られる。具体的にはこう

// OK
println("Hello, world!")
// NG
println "Hello, world!"

なんでだろうーと思いながらググっても出てこないからスルーしてたけど、コップ本読んでたら書いてありました。コップ本はこういう素朴な疑問に対する答えも書いてあるところが嬉しいですね。買ってよかった! ちなみに、同僚に冗談でアフィブログとか言われてるので言い訳しておきますが、ここから本を買っても僕には1銭も入ってきませんw

Scalaスケーラブルプログラミング第2版

Scalaスケーラブルプログラミング第2版

第03章 P.61
メソッドのパラメーターが1つだけなら、ドットや括弧を使わずに呼び出せる。
// 中略
この構文が使えるのは、メソッド呼び出しのレシーバー(メソッド呼び出しのドットの前に書かれるオブジェクト)を明示的に指定したときだけだということに注意しよう。println 10とは書けないが、Console println 10とは書くことはできる。

なるほどー。printlnを呼び出してる側を書いてないから括弧を省略できないんだ!スッキリした!!