protocol MyProtocol { //实现协议时才指定类型 associatedtype ItemType var param:ItemType {get set} } class MyClass:MyProtocol { //由于Swift可以自动识别类型 这是MyProtocol中的ItemType为Int var param: Int = 0 }
三、泛型与where子句的结合使用
使用where子句可以对泛型进行更加严格约束,使其符合开发者需要的逻辑,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12
//T和C都要遵守整型协议 class MyClassTwo<T,C where T:IntegerType,C:IntegerType> { var param1:T var param2:C init(param1:T,param2:C){ self.param1=param1 self.param2=param2 } }