ฉันจะแก้ไขเอาต์พุตข้อความที่แสดงในการแก้ไขสตริงได้อย่างไร
Printable
โปรโตคอลลักษณะที่เห็นได้ชัดมากที่สุด แต่ก็ไม่สนใจทั้งใน String แก้ไขและเมื่อพิมพ์ตัวอย่างเช่น:
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 ซึ่งใช้การแทนค่าสตริงของตัวเองสำหรับโครงสร้างเช่น:
p // {x 10, y 20}
มีวิธีเปลี่ยนวิธีการแสดงอินสแตนซ์หรือไม่?