なんだかんだいって、printデバックって汎用的でいざという時につかえて便利なので(というかIDEのデバッガとかをscalaで使う気になれないので)普段からよくつかいます。
が、printlnって7文字ながい。(しかも括弧を付ける必要もある)
その点、Rubyにpっていうメソッドがデフォルトで組み込まれているのは、わりと好きです。
まぁそんなどうでもいい細かい話。pって書きたいだけなら
def p(args: Any*) = println(args)
で
p("ほげ")
と書けばいいですが、2.10から入ったstring interpolation使って以下のようなもの定義しておけば*1
implicit class toPrint(val s: StringContext) extends AnyVal { def p(args: Any*): String = { val str = s.s(args : _*) println(str) str // なんとなく便利かもしれないので、受け取ったものそのまま返す } }
p"ほげ"
と、さらに短く書けるよね!というだけの話。ちょっとしたものなら、似たような感じで、
log"あばばば"
という構文で、ログを吐けるようにするとかありなんじゃないでしょうか(?)。おしまい・・・(´・ω・`)
*1: フォーマットの形式は、普通の s と同じ動作にしただけ https://github.com/scala/scala/blob/v2.10.0/src/library/scala/StringContext.scala#L90