门外汉自学Swift

20170619基础知识-泛型

2017-06-19  本文已影响0人  花间提壶蛋大厨

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)!)

上一篇 下一篇

猜你喜欢

热点阅读