小编Mik*_*rep的帖子

Swift 3 - 通过Int属性减少对象集合

我有一个包含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]
Run Code Online (Sandbox Code Playgroud)

当我减少数组并将其分配给变量时,我只能对数组中的最后一个元素求和.

let total = arr.reduce(0, {$1.distance! + $1.distance!})  //returns 4
Run Code Online (Sandbox Code Playgroud)

如果我尝试$ 0.distance!它的错误是"没有更多的上下文,表达式是模棱两可的".

我试着更明确:

var total = arr.reduce(0, {(first: AClass, second: AClass) -> Int in
    return first.distance! + second.distance!
})
Run Code Online (Sandbox Code Playgroud)

但是"'Int'的错误与上下文类型'_'不兼容"如何将其减少到距离的总和?

reduce swift

4
推荐指数
1
解决办法
2727
查看次数

标签 统计

reduce ×1

swift ×1