Scalaでprintlnの括弧はなぜ省略できない?
Scalaだとメソッド呼び出しで、ドットと括弧は省略できるって教えてもらったんだけど、printlnの括弧は省略すると怒られる。具体的にはこう
// OK println("Hello, world!") // NG println "Hello, world!"
なんでだろうーと思いながらググっても出てこないからスルーしてたけど、コップ本読んでたら書いてありました。コップ本はこういう素朴な疑問に対する答えも書いてあるところが嬉しいですね。買ってよかった! ちなみに、同僚に冗談でアフィブログとか言われてるので言い訳しておきますが、ここから本を買っても僕には1銭も入ってきませんw
- 作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/09/27
- メディア: 単行本(ソフトカバー)
- 購入: 12人 クリック: 235回
- この商品を含むブログ (45件) を見る
第03章 P.61
メソッドのパラメーターが1つだけなら、ドットや括弧を使わずに呼び出せる。
// 中略
この構文が使えるのは、メソッド呼び出しのレシーバー(メソッド呼び出しのドットの前に書かれるオブジェクト)を明示的に指定したときだけだということに注意しよう。println 10
とは書けないが、Console println 10
とは書くことはできる。
なるほどー。println
を呼び出してる側を書いてないから括弧を省略できないんだ!スッキリした!!