1
我在iOS遊戲中編寫了一個結構,並且想定製它的打印格式。爲什麼CustomStringConvertible協議描述被多次調用?
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倍。
無法重現。 - 等等:你在遊樂場試過嗎? –
@MartinR真的嗎?因爲我創建了一個新的iOS遊樂場以進行雙重確認,所以我發佈了控制檯打印 – shoujs
遊樂場在右欄顯示值,因此多次調用「說明」。 –