关于 CustomStringConvertible 协议

print 语句输出的内容只是这个结构的名称,这显然不是我们希望的结果,我们更多情况下需要的是它能够输出 Music 实例的内容。

我们来修改一下 Music 类的定义,让它实现 CustomStringConvertible 协议:

import UIKit

struct Music {
    let name: String
    let singer: String
    
    init(name: String, singer: String) {
        self.name = name
        self.singer = singer
    }
}

//实现 CustomStringConvertible 协议,方便输出调试
extension Music: CustomStringConvertible {
    var description: String {
        return "name: \(name) singer"
    }
}

你可能感兴趣的:(关于 CustomStringConvertible 协议)