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
游乐场在右栏显示值,因此多次调用“说明”。 –