我在 iOS 操场上写了一个结构,想自定义它的打印格式。
struct Point {
let x: Int, y: Int
}
extension Point: CustomStringConvertible {
var description: String {
switch (x, y) {
case let (x, 1..<10):
print("y in the range")
return "(\(x), 1..<10)"
default:
return "(\(x), \(y))"
}
}
}
let p = Point(x: 1, y: 1)
print(p)
结果是
我无法理解,即使我print
只打了一次电话,但y in the range
消息却被打印了 4 次。