据我了解,雨燕的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'。你确定你的代码没有错字吗? –
固定,对不起。我实际上没有这样的代码,只是把它放在了我的问题的背景下。 –