【发布时间】:2017-11-05 14:34:02
【问题描述】:
我有一个包含 3 个对象的数组,如下所示:
class AClass {
var distance: Int?
}
let obj0 = AClass()
obj0.distance = 0
let obj1 = AClass()
obj1.distance = 1
let obj2 = AClass()
obj2.distance = 2
let arr = [obj0, obj1, obj2]
当我减少数组并将其分配给变量时,我只能对数组中的最后一个元素求和。
let total = arr.reduce(0, {$1.distance! + $1.distance!}) //returns 4
如果我尝试 $0.distance!它的错误是“表达式不明确,没有更多上下文”。
我尝试更明确:
var total = arr.reduce(0, {(first: AClass, second: AClass) -> Int in
return first.distance! + second.distance!
})
但是这个错误“'Int'与上下文类型'_'不兼容” 如何将其减少到距离的总和?
【问题讨论】: