我想在协议扩展中为我的协议实现一个可打印的功能,然后任何符合协议的结构都将根据协议的字段进行打印。但我收到以下错误,似乎 swift 不允许这样做。我应该扩展String并添加一个init(_:Info) {...}吗?
protocol Info {
var name: String { get }
var serial: Int { get }
}
struct Person : Info {
var name = ""
var serial = 0
}
extension Info : CustomStringConvertible {
^~~~~~~~~~~~~~~~~~~~~~~
error: extension of protocol 'Info' cannot have an inheritance clause
var description: String {
return "\(name) + \(serial)"
}
}
func print(info: Info) {
print(info)
}