使用以下代碼可以顯示如何使用Swift CollectionType .filter .indexOf .map實例方法在數組中查找值命名元組?Swift使用CollectionType .filter .indexOf和.map查找元組數組中的值
文檔here是不夠的。
import UIKit
class Foo {
private var mData: String
init(data: String) { mData = data }
func printData() { print(mData) }
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var myList = [(code:Int64, list: [Foo])]()
let fooListA = [Foo(data: "A0"), Foo(data: "A1"), Foo(data: "A2")]
let fooListB = [Foo(data: "B0"), Foo(data: "B1"), Foo(data: "B2")]
let fooListC = [Foo(data: "C0"), Foo(data: "C1"), Foo(data: "C2")]
let fooListD = [Foo(data: "D0"), Foo(data: "D1"), Foo(data: "D2")]
myList.append((code: 10, list: fooListA))
myList.append((code: 20, list: fooListB))
myList.append((code: 30, list: fooListC))
myList.append((code: 40, list: fooListD))
// following lines cause errors
let foundItem: (code:Int64, list:[Foo]) = myList.filter { (Self.Generator.Element) -> Bool in
if item.code = 20 {return true}
}
foundItem.list[1].printData() // prints 'B1'
let foundItemIdx = myList.indexOf { (Self.Generator.Element) -> Bool in
if item.code = 20 { return true}
}
print(foundItemIdx) // prints '1'
// extra credit how does map work???
}
}