swift associatedtype使用
2017-09-25 00:00
351 查看
swift中protocol不能使用<T>这种泛型,但是提供了associatedtype关键字来支持泛型
//protocol使用 associatedtype 来支持泛型 protocol ObservebleType { associatedtype Element associatedtype Element2: Comparable func removeFirst() -> Self.Element? func add(item: Element) } //实体类型 class Observeble<T: Comparable>: ObservebleType { // 实体类型需要实现具体类型 typealias Element = T //方式1 typealias Element2 = Int //方式2 var ts: [T] init(t: T) { ts = [t] } func add(item: T) { ts.append(item) } func removeFirst() -> T? { guard ts.count > 0 else { return nil } return ts.remove(at: 0) } } let o = Observeble<String>.init(t: "哈哈") o.add(item: "haha") o.removeFirst() o.removeFirst() o.removeFirst()
相关文章推荐
- Swift中使用typealias定义一个闭包closure
- [Swift 开发] 使用闭包传值(typealias)
- Swift 3 使用objc_setAssociatedObject
- Swift中使用typealias定义一个闭包closure
- Swift typealias associatedType
- Swift Optional Type(问号?和感叹号!)的理解和使用
- Swift 中使用 SQLite——修改和删除数据
- const TYPE *pPointer、TYPE * cosnt pPointer使用举例
- IOS Swift Charts3.0折线图的使用
- swift之通知的使用
- swift:使用第三方开源库SwiftyJSON解析本地json数据文件
- swift 2. 第一次使用Xcode 以及运行hello word
- 如何使用 Swift 开发简单的条形码检测器?
- Swift之ImageView、NSTimer使用
- swift/IOS 多线程使用
- VC 使用ADO连接数据库的问题!error C2059: 语法错误 : “<L_TYPE_raw>” .
- swift之URLSession的使用
- nontype template parameters 使用字符串作为template arguments
- Swift - 使用NSURLSession同步获取数据(通过添加信号量)
- Swift开发--Storyboard的使用教程