如果你喜歡「ABC」 + stringval +「ABC」一條語句做的事,是一個不可改變的字符串拷貝,或兩個(注意,ABC和123是在編譯時間常數)周邊斯卡拉字符串
獎金回合:使用類似以下的StringBuilder會有更多或更少的開銷?
def surround(s:String, ss:String):String = {
val surrounded = new StringBuilder(s.length() + 2*ss.length(), s)
surrounded.insert(0,ss)
surrounded.append(ss)
surrounded.mkString
}
或者還有一種我不知道的更習慣的方式?
surround2與surround3之間的主要區別在於,surround3預先計算了支持StringBuilder所需的數組大小。這消除了擴展支持構建器的數組的可能性和成本,其細節隱藏在StringBuilder類中。 –