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
Playgroundは値を右側の列に表示し、 'description'を複数回呼び出します。 –