據我瞭解,雨燕的map
功能執行以下操作:斯威夫特的映射函數
- 在任何採用
SequenceType
- 想法是返回另一個「東西」工程(尋找一個更好的詞),其有它是通過你傳遞到封閉的邏輯轉化元素
- 始終返回「東西」仍然符合
SequenceType
和元素#不改變
例如:
我們有2類牛奶和奶酪。我們給出的構造函數奶酪,這是這樣的:
init(withMilk milk: Milk) {
self.milk = milk
}
鑑於牛奶對象的數組,我們把奶陣列對象爲奶酪對象,像這樣:
let arrayOfCheese = arrayOfMilk.map { Cheese(withMilk: $0) }
這對我來說很好。但現在我想要比普通奶酪更多的東西。我需要的成分來自全國各地的地方:
let arrayOfSuperCheese = arrayOfMilk.map {
let cheese = Cheese(usingMilk: $0)
let sulfur = Sulfur()
let minerals = Minerals()
let mixer = Mixer()
let superCheese = mixer.mixIn(sulphur: sulphur, minerals: minerals)
return superCheese
}
編譯器告訴我:
Cannot invoke 'map' with an argument list of type '(@noescape (Element) throws -> _)
上面的例子大致是我目前遇到的問題。請讓我知道這個例子是否有意義。
你的代碼示例使用'withMilk',但用法使用'usingMilk'。你確定你的代碼沒有錯字嗎? –
固定,對不起。我實際上沒有這樣的代碼,只是把它放在了我的問題的背景下。 –