協(xié)議合成類型是一種符合每個協(xié)議的指定協(xié)議列表類型。協(xié)議合成類型可能會用在類型注解和泛型參數(shù)中。
協(xié)議合成類型的形式如下:
protocol<Protocol 1, Procotol 2>
協(xié)議合成類型允許你指定一個值,其類型可以適配多個協(xié)議的條件,而且不需要定義一個新的命名型協(xié)議來繼承其它想要適配的各個協(xié)議。比如,協(xié)議合成類型protocol<Protocol A, Protocol B, Protocol C>等效于一個從Protocol A,Protocol B, Protocol C繼承而來的新協(xié)議Protocol D,很顯然這樣做有效率的多,甚至不需引入一個新名字。
協(xié)議合成列表中的每項(xiàng)必須是協(xié)議名或協(xié)議合成類型的類型別名。如果列表為空,它就會指定一個空協(xié)議合成列表,這樣每個類型都能適配。
協(xié)議合成類型語法
協(xié)議合成類型 → protocol < 協(xié)議標(biāo)識符列表 可選 >
協(xié)議標(biāo)識符列表 → 協(xié)議標(biāo)識符 | 協(xié)議標(biāo)識符 , 協(xié)議標(biāo)識符列表
協(xié)議標(biāo)識符 → 類型標(biāo)識