[Scala]RubyでいうFile.joinに似た事を実装してみる

2012年4月30日

Scalaでパスを生成する時

素直にStringのジョインにする
[scala]"/tmp" + “/" + “data"[/scala]
とか
[scala]"/" + (“" /: Array(“tmp", “data")) (_ + “/" + ?)[/scala]
とか毎回やるのが面倒になったので、

Array(“tmp", “data") createPath

という感じで/tmp/data

という文字列を作れるようにしてみる。
[scala]trait createpathtrait[T];
implicit def createpathimp(a: Array[String]) = new createpathtrait[Array[String]]{def createPath = {(“" /: a)(_ + “/" + _)}}[/scala]
これをどこかグローバルに呼べるファイルに入れておけば
[scala]Array(“tmp", “data") createPath[/scala]

[scala]res1: java.lang.String = /tmp/data[/scala]
が帰ってくるようになる

Scala

Posted by GENDOSU