From c678d198e4e58d2002e1bb5fd8620e4aa8b4c170 Mon Sep 17 00:00:00 2001 From: xiaox0321 Date: Wed, 4 Jan 2017 13:34:06 +0800 Subject: [PATCH] Update 23_Generics.md (#680) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 参考官方文档,修改一些语法上的问题 --- source/chapter2/23_Generics.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/chapter2/23_Generics.md b/source/chapter2/23_Generics.md index 2b0e982f..f45c5a49 100644 --- a/source/chapter2/23_Generics.md +++ b/source/chapter2/23_Generics.md @@ -185,7 +185,7 @@ struct IntStack { ```swift struct Stack { var items = [Element]() - mutating func push(item: Element) { +    mutating func push(_ item: Element) { items.append(item) } mutating func pop() -> Element { @@ -330,8 +330,8 @@ func findIndex(of valueToFind: T, in array:[T]) -> Int? { 任何 `Equatable` 类型都可以安全地使用在 `findIndex(of:in:)` 函数中,因为其保证支持等式操作符。为了说明这个事实,当你定义一个函数时,你可以定义一个 `Equatable` 类型约束作为类型参数定义的一部分: ```swift -func findIndex(array: [T], _ valueToFind: T) -> Int? { - for (index, value) in array.enumerate() { +func findIndex(of valueToFind: T, in array:[T]) -> Int? { + for (index, value) in array.enumerated() { if value == valueToFind { return index } @@ -364,7 +364,7 @@ let stringIndex = findIndex(of: "Andrea", in: ["Mike", "Malcolm", "Andrea"]) ```swift protocol Container { associatedtype ItemType - mutating func append(item: ItemType) + mutating func append(_ item: ItemType) var count: Int { get } subscript(i: Int) -> ItemType { get } } @@ -390,7 +390,7 @@ protocol Container { struct IntStack: Container { // IntStack 的原始实现部分 var items = [Int]() - mutating func push(item: Int) { + mutating func push(_ item: Int) { items.append(item) } mutating func pop() -> Int { @@ -398,7 +398,7 @@ struct IntStack: Container { } // Container 协议的实现部分 typealias ItemType = Int - mutating func append(item: Int) { + mutating func append(_ item: Int) { self.push(item) } var count: Int { @@ -422,14 +422,14 @@ struct IntStack: Container { struct Stack: Container { // Stack 的原始实现部分 var items = [Element]() - mutating func push(item: Element) { + mutating func push(_ item: Element) { items.append(item) } mutating func pop() -> Element { return items.removeLast() } // Container 协议的实现部分 - mutating func append(item: Element) { + mutating func append(_ item: Element) { self.push(item) } var count: Int {