第二十三章 泛型

swift的泛型與c++的泛型很像,也是用一個(gè)<>來表示,也是可以對(duì)函數(shù)、類型進(jìn)行泛型。

e.g

func swapTwoValues<T> (_ a: inout T, _ b: inout T) {

? ? let tempA = a

? ? a = b

? ? b = tempA

}

var someInt = 3

var anotherInt = 107

swapTwoInts(&someInt, &anotherInt)

print("Now, someInt=\(someInt), anotherInt=\(anotherInt)")

swapTwoValues(&someInt, &anotherInt)

print("Now, someInt=\(someInt), anotherInt=\(anotherInt)")


protocol Container {

? ? associatedtype ItemType //關(guān)聯(lián)類型

? ? mutating func append(_ item: ItemType)

? ? var count: Int { get }

? ? subscript(i: Int) -> ItemType { get }

}

struct Stack: Container {

? ? var items = [Element]()

? ? mutating func push(_ item: Element) {

? ? ? ? items.append(item)

? ? }

? ? mutating func pop() -> Element {

? ? ? ? return items.removeLast()

? ? }

? ? mutating func append(_ item: Element) {

? ? ? ? self.push(item)

? ? }

? ? var count: Int {

? ? ? ? return items.count

? ? }

? ? subscript(i: Int) -> Element {

? ? ? ? return items[i]

? ? }

}

ar strStack = Stack()

strStack.append("one")

strStack.push("two")

strStack.push("three")

strStack.append("four")

print(strStack.count)

print(strStack[1])

strStack.pop()

print(strStack.count)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容