Wie kann ich die Textausgabe ändern, die bei der Zeichenfolgeninterpolation angezeigt wird?
Das Printable
Protokoll sieht am offensichtlichsten aus, wird jedoch sowohl bei der Zeichenfolgeninterpolation als auch beim Drucken der Instanz ignoriert, z.
struct Point : Printable
{
var x = 0
var y = 0
var description : String {
return "(\(x), \(y))"
}
func toString() -> String {
return description
}
}
Ebenso hat die toString()
Konvention auch keine Wirkung:
var p = Point(x: 10, y: 20)
println(p) // V11lldb_expr_05Point (has 2 children)
println("\(p)") // V11lldb_expr_05Point (has 2 children)
println(p.description) // (10, 20)
println("\(p.description)") // (10, 20)
Das Verhalten ist in PlayGround wieder anders, das eine eigene String-Darstellung für Strukturen verwendet, dh:
p // {x 10, y 20}
Gibt es eine Möglichkeit, die Anzeige einer Instanz zu ändern?