比如一个自定义结构,在打印时,print 会按照 Swift struct 的默认格式打印 Person 值
struct Person {
let name: String
let place: String
}
print("Hi, \(Person(name: "Geralt", place: "Rivia"))")
如果要自定义Person的打印结果,可以 扩展String.StringInterpolation,样例代码:
extension String.StringInterpolation {
mutating func appendInterpolation(_ person: Person) {
// 调用的 `appendLiteral(_ literal: String)` 接受 `String` 参数
appendLiteral("\(person.name) of \(person.place)")
}
}
这样,打印出来的Person会变成
print("Hi, \(Person(name: "Geralt", place: "Rivia"))")
Hi, Geralt of Rivia