當專門處理非可選String
值時,字符串插值和字符串串聯有什麼區別?字符串插值和字符串串聯之間的區別
struct MyModel {
let value1: String
let value2: String
var displayNameByConcatenation: String {
return value1 + "-" + value2
}
var displayNameByInterpolation: String {
return "\(value1)-\(value2)"
}
}
- 是否有將要在那裏
displayNameByConcatenation
和displayNameByInterpolation
不同的案例?就像長Unicode字符串一樣? - 是否有可能以某種方式覆蓋運算符
+
的行爲或插值的行爲使它們在上例中不同? - 比另一個更快/更慢嗎?
請注意,從this question我們知道字符串插值將使用CustomStringConvertible的description
。但String
串聯(運營商+
)也調用description
?
我認爲我們可以有把握地假設'一*字符串description' *返回字符串本身,這意味着沒有什麼區別。 –
你試過重寫'+'嗎?你測量過速度了嗎? –
@MartinR速度測試完成後,使用CharacterSet的一些代碼來獲得樂趣。 –