Comment puis-je modifier la sortie textuelle qui s'affiche dans l'interpolation de chaîne?
Le Printable
protocole semble le plus évident mais il est ignoré à la fois dans l'interpolation de chaîne et lors de l'impression de l'instance, par exemple:
struct Point : Printable
{
var x = 0
var y = 0
var description : String {
return "(\(x), \(y))"
}
func toString() -> String {
return description
}
}
De même, la toString()
convention n'a aucun effet non plus:
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)
Le comportement est encore différent dans PlayGround qui utilise sa propre représentation String pour les structures, c'est-à-dire:
p // {x 10, y 20}
Existe-t-il un moyen de modifier la façon dont une instance est affichée?