在class中泛型聲明十分簡單,直接類名後面➕
<T : Any>
就能夠了,那麼Protocol中的泛型應該如何使用呢?
理想中protocol中的泛型使用應該是這樣的swift
protocol XProtocol<T : Any> { var param : [T]{get set} func testFun() -> T }
但實際上Protocol是不支持這樣的泛型聲明的,那麼咱們如何實現以上代碼的功能呢?code
protocol中使用泛型涉及到associatedtype
關鍵字,這個關鍵字應該怎麼用,具體咱們看看代碼ci
protocol FxProtocol { associatedtype T var param : [T]{get set} func testFun() -> T }
在class中,咱們定義一下T的具體類型便可get
class Test : FxProtocol{ typealias T = String var param: [String] = [] func testFun() -> String { return "" } }