私はPredef.StringCanBuildFrom
私がCanBuildFrom
私のコードで行っていた前提を壊す驚くべき実装の間につまずいた。Predef.StringCanBuildFromの動作
implicit def stringCanBuildFrom: CanBuildFrom[String, Char, String] =
new CanBuildFrom[String, Char, String] {
def apply(from: String) = apply()
def apply() = mutable.StringBuilder.newBuilder
}
apply(String)
は、単にパラメータを無視することは全く不自然と思われる:ここでの実装です。私には、正しい実装は
implicit def stringCanBuildFrom: CanBuildFrom[String, Char, String] =
new CanBuildFrom[String, Char, String] {
def apply(from: String) = apply() ++= from
def apply() = mutable.StringBuilder.newBuilder
}
する必要がありますが、それは私が、私は言語が存在するためことを発見したのはONY一人を信じることができないように些細なようです。私はこれについて問題を開くように誘惑されましたが、私が提案したことをしないという正当な理由がなければ、教えてください!
うーんを、私は使用法のより多くの例を読んでいる必要があります。そうです、彼らは常にビルダーが空に初期化されていると仮定しており、あなたの例では重複した '' foo ''を説明しています。乾杯:) – Dici