20170619基础知识-泛型

1、泛型:在程序代码中,定义一些可变的部分,在运行的时候指定

func isEquals(a:T,b:T)  -> Bool {return a == b}

T:Comparable  占位符后面加协议,称为泛型约束

2、占位符T,不经可以替代参数类型,还可以替代返回值类型

func isEquals(a: T, b: T) -> T {}

多类型参数

func isEquals(a: T, b: U) -> Bool {}

structStringQueue {

varitems = [T]()

mutatingfuncqueue(item :T) {

items.append(item)

}

mutatingfuncdequeue() ->T? {

ifitems.isEmpty{

returnnil

}else{

returnitems.remove(at:0)

}

}

}

3、泛型支持扩展,与其他扩展没有区别

structQueue {

varitems = [T]()

mutatingfuncqueue(item :T) {

items.append(item)

}

mutatingfuncdequeue() ->T? {

ifitems.isEmpty{

returnnil

}else{

returnitems.remove(at:0)

}

}

}

extensionQueue{

funcpeek(position :Int) ->T? {

ifposition <0||position >items.count{

returnnil

}else{

returnitems[position]

}

}

}

vargenericDoubleQueue =Queue()

genericDoubleQueue.queue(item:3.26)

genericDoubleQueue.queue(item:8.86)

genericDoubleQueue.queue(item:1.99)

genericDoubleQueue.queue(item:7.68)

print(genericDoubleQueue.peek(position:2)!)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 9,474评论 1 10
  • 泛型代码可以确保你写出灵活的,可重用的函数和定义出任何你所确定好的需求的类型。你的可以写出避免重复的代码,并且用一...
    iOS_Developer阅读 4,229评论 0 0
  • Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...
    零度_不结冰阅读 3,068评论 0 0
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 5,465评论 0 4
  • 悠游鱼阅读 3,355评论 7 7

友情链接更多精彩内容