¿Cómo puedo modificar la salida textual que se muestra en la interpolación de cadenas?
El Printable
protocolo parece el más obvio, pero se ignora tanto en la Interpolación de cadenas como al imprimir la instancia, por ejemplo:
struct Point : Printable
{
var x = 0
var y = 0
var description : String {
return "(\(x), \(y))"
}
func toString() -> String {
return description
}
}
Asimismo, la toString()
convención tampoco tiene efecto:
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)
El comportamiento es diferente nuevamente en PlayGround, que usa su propia representación de cadena para estructuras, es decir:
p // {x 10, y 20}
¿Hay alguna forma de cambiar la forma en que se muestra una instancia?