Come posso modificare l'output testuale che viene visualizzato nell'interpolazione di stringhe?
Il Printable
protocollo sembra il più ovvio ma viene ignorato sia nell'interpolazione di stringhe che durante la stampa dell'istanza, ad esempio:
struct Point : Printable
{
var x = 0
var y = 0
var description : String {
return "(\(x), \(y))"
}
func toString() -> String {
return description
}
}
Allo stesso modo la toString()
convenzione non ha alcun effetto:
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)
Il comportamento è di nuovo diverso in PlayGround che utilizza la propria rappresentazione String per le strutture, ovvero:
p // {x 10, y 20}
C'è un modo per modificare la modalità di visualizzazione di un'istanza?