关于协议组合,swift 中的“&”和“,”有什么区别

What is difference between '&' and ',' in swift about Protocol Composition

我有一个问题

在swift,

class Card : Equatable & CustomStringConvertible

class Card : Equatable, CustomStringConvertible

我认为他们在做同样的事情。 有什么不同??

根据 protocols 上的 Swift 文档,我认为 & 主要用于 需要 一个变量采用多个协议,例如:

func wishHappyBirthday(to celebrator: Named & Aged) {
    print("Happy birthday, \(celebrator.name), you're \(celebrator.age)!")
}

当你想采用自定义struct/class到多个协议时,你可以使用,

struct SomeStructure: FirstProtocol, AnotherProtocol {
    // structure definition goes here
}