第二十三章 泛型

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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift 提供了泛型让你写出灵活且可重用的函数和类型。Swift 标准库是通过泛型代码构建出来的。Swift 的...
    零度_不结冰阅读 3,043评论 0 0
  • 136.泛型 泛型代码让你可以写出灵活,可重用的函数和类型,它们可以使用任何类型,受你定义的需求的约束。你可以写出...
    无沣阅读 5,430评论 0 4
  • 泛型代码可以确保你写出灵活的,可重用的函数和定义出任何你所确定好的需求的类型。你的可以写出避免重复的代码,并且用一...
    iOS_Developer阅读 4,185评论 0 0
  • 1、泛型:使用泛型能更清晰更简洁的表达代码意图 // 泛型所解决的问题func swapTwoInts(a: in...
    克鲁德李阅读 2,166评论 0 0
  • http://www.beforweb.com/node/515 著作权归作者所有。 商业转载请联系作者获得授权,...
    Wong大丑阅读 9,911评论 0 2