swift学习笔记

第二十三章 泛型

2017-07-25  本文已影响0人  运柱

swift的泛型与c++的泛型很像,也是用一个<>来表示,也是可以对函数、类型进行泛型。

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 //关联类型

    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)

上一篇 下一篇

猜你喜欢

热点阅读