Wenn speziell nicht-optionale String
Werte behandelt werden, was könnte der Unterschied zwischen String-Interpolation und String-Verkettung sein?Unterschied zwischen String-Interpolation und String-Verkettung
struct MyModel {
let value1: String
let value2: String
var displayNameByConcatenation: String {
return value1 + "-" + value2
}
var displayNameByInterpolation: String {
return "\(value1)-\(value2)"
}
}
- Wird es jedem Fall sein, wo
displayNameByConcatenation
unddisplayNameByInterpolation
unterschiedlich sind? Wie bei langen Unicode-Strings? - Ist es möglich, das Verhalten des Operators
+
oder das Verhalten der Interpolation irgendwie zu überschreiben, um sie im obigen Beispiel anders zu machen? - Ist einer schneller/langsamer als der andere?
Beachten Sie, dass aus this question wir erfahren, dass String-Interpolation die description
eines CustomStringConvertible verwenden. Aber ruft String
Verkettung (Operator +
) auch die description
?
Ich denke, wir können sie davon ausgehen, dass die 'description' einer * string * gibt die Zeichenfolge selbst, was bedeutet, dass es keinen Unterschied gibt. –
Haben Sie versucht, '+' zu überschreiben? Hast du die Geschwindigkeit gemessen? –
@MartinR Geschwindigkeitstest getan, mit etwas von Ihrem Code für CharacterSet zum Spaß. –