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