2012年4月30日月曜日

BufferedReaderから、文字列を取り出す #scala

よく使いそうなんだけど、忘れそうなのでメモ。


  private def readContentString(reader: BufferedReader) = {
    def readerLocal(accumulator: StringBuilder): String = {
      reader.readLine() match {
        case null => accumulator.toString()
        case content => readerLocal(accumulator.append(content))
      }
    }
    readerLocal(new StringBuilder)
  }


accumulatorをStringにして accumulator + content

なんてことをやったら、ダメなんだろうなと最近知りました。

ループの中で文字列を連結するときに + は避けたほうが良いよという話です。

バイトコード言いよバイトコード。

0 件のコメント:

コメントを投稿