2017年8月21日 星期一

[Swift] Associatedtype - Protocol中的泛型

假設我們有個需求是當實作某個Protocol時,其中有些方法傳入的資料型態可能是由實作者來定義的,就可以使用Associatedtype。

舉例來說,有個Animal的Protocol,在實作的時候,實作者可以定義這個動物吃的資料型態,並實作吃食物的方法,以下可以參考程式碼。


此外,如果想要將泛型範圍縮減一點也是可以的,繼續拿這個例子來說,假設我們想定義一個寵物的Protocol,而裡面必須要是有實作過動物的資料型態才可以,你可以參考以下的程式碼。