次のことをより効率的に実行したいと思います。
def repeatChar(char:Char, n: Int) = List.fill(n)(char).mkString
def repeatString(char:String, n: Int) = List.fill(n)(char).mkString
repeatChar('a',3) // res0: String = aaa
repeatString("abc",3) // res0: String = abcabcabc
文字列の場合は、"abc" * 3
と書くだけで済みます。これは StringOps
で動作し、舞台裏でStringBuffer
を使用します。
キャラクターについては、char.toString * n
は間違いなく明確ですが、ソリューションはかなり合理的だと思います。 List.fill
バージョンがニーズに対して十分に効率的でないと疑う理由はありますか? StringBuffer
(StringOps
の*
と同様)を使用する独自のメソッドを書くこともできますが、まず明確にすることを目指してから、効率性を心配することをお勧めします。それがプログラムの問題であることの具体的な証拠。