如何修改在字符串插值中显示的文本输出?
该Printable
协议看起来最明显,但是在字符串插值和打印实例时都会被忽略,例如:
struct Point : Printable
{
var x = 0
var y = 0
var description : String {
return "(\(x), \(y))"
}
func toString() -> String {
return description
}
}
同样,该toString()
约定也无效:
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)
PlayGround的行为又有所不同,PlayGround使用自己的String表示结构,即:
p // {x 10, y 20}
有什么方法可以更改实例的显示方式吗?