能否请您解释此语句中的&运算符是什么意思?您如何翻译此行?
let presenter: ContactListPresenterProtocol & ContactListInteractorOutputProtocol = ContactListPresenter()
答案 0 :(得分:-1)
let presenter: ContactListPresenterProtocol & ContactListInteractorOutputProtocol = ContactListPresenter()
在这种情况下,presenter
是类型'ContactListPresenter
'的值,而该值又需要符合protocol
'ContactListPresenterProtocol
&ContactListInteractorOutputProtocol
'
如果ContactListPresenter
不符合上述两个协议,则会出现以下错误:
“ ContactListPresenter”类型的值不符合指定的值 输入'ContactListPresenterProtocol& ContactListInteractorOutputProtocol'
协议组成
要求一种类型同时符合多种协议可能很有用。您可以将多个协议组合成具有协议组成的单个需求。协议组合的行为就像您定义了一个临时本地协议,该协议具有组合中所有协议的组合要求。协议组成没有定义任何新的协议类型。
协议组成具有SomeProtocol和AnotherProtocol的形式。您可以根据需要列出任意数量的协议,并用&分隔。除了协议列表以外,协议组成还可以包含一个类类型,您可以使用它来指定所需的超类。
要完全理解,请遵循
https://docs.swift.org/swift-book/LanguageGuide/Protocols.html#
并按照协议中的协议组成进行操作