我想更有效地执行以下操作:
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 http://www.scala-lang.org/api/current/scala/collection/immutable/StringOps.html并使用一个StringBuffer
在幕后。
对于角色,我认为你的解决方案非常合理,尽管char.toString * n
可以说是更清楚了。你有什么理由怀疑List.fill
版本不足以满足您的需求?您可以编写自己的方法,该方法将使用StringBuffer
(如同*
on StringOps
),但我建议首先以清晰为目标,然后只有当您有具体证据表明这是您的程序中的问题时才担心效率。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)