我试图总结一只股票的总价值,正确的答案是:
let stock = [1.5:5, 10:2, 4.99:20, 2.30:5, 8.19:30]
let stockSum = stock.reduce(0, {
$0 + $1.key * Double($1.value)
})
但我的观点是:
...
let stockSum = stock.reduce(0, {
$0.key * Double($0.value) + $1.key * Double($1.value)
})
肯定会返回错误,有人可以帮我解释一下吗?
答案 0 :(得分:1)
以下是reduce
方法的参数列表
reduce(initialResult: Result, nextPartialResult: (Result, (key: Double, value: Int)) throws -> Result)
在您的情况下,0
被分配给initialResult
,这实际上在迭代时将总和保存到某个点。此initialResult
作为$0
中的第一个参数和字典'传入。 key,value作为$1
中的第二个参数传递。因此,您会看到$1.key
和$1.value