Arrays 缺少参数标签';联合收割机:';随时待命

Arrays 缺少参数标签';联合收割机:';随时待命,arrays,swift,Arrays,Swift,获取如下所示的错误: var products = [ ("Kayak", "A boat for one person", "Watersports", 275.0, 10), ("Lifejacket", "Protective and fashionable", "Watersports", 48.95, 14)] let stockTotal = products.reduce(0,{(total, product) -> Int in return total

获取如下所示的错误:

var products = [
    ("Kayak", "A boat for one person", "Watersports", 275.0, 10),
    ("Lifejacket", "Protective and fashionable", "Watersports", 48.95, 14)]

let stockTotal = products.reduce(0,{(total, product) -> Int in return total + product.4}); //missing argument label 'combine:' in call
在我看到的所有reduce示例中,未使用联合收割机标签:

let numbers = Array(1...10)
.reduce("numbers: ") {(total, number) in total + "\(number) "}

那么我做错了什么呢?

使用尾随闭包语法:

let stockTotal = products.reduce(0) {(total, product) -> Int in return total + product.4}

使用尾随闭包语法:

let stockTotal = products.reduce(0) {(total, product) -> Int in return total + product.4}

如果使用尾随闭包,则可以忽略标签:

var products = [
    ("Kayak", "A boat for one person", "Watersports", 275.0, 10),
    ("Lifejacket", "Protective and fashionable", "Watersports", 48.95, 14)
]

let stockTotal = products.reduce(0) { $0 + $1.4 }
对于尾随闭包,闭包将在最终的
之后提供给函数。如果不想使用尾随闭包,则需要添加参数标签:

let stockTotal2 = products.reduce(0, combine: { $0 + $1.4 })

如果使用尾随闭包,则可以忽略标签:

var products = [
    ("Kayak", "A boat for one person", "Watersports", 275.0, 10),
    ("Lifejacket", "Protective and fashionable", "Watersports", 48.95, 14)
]

let stockTotal = products.reduce(0) { $0 + $1.4 }
对于尾随闭包,闭包将在最终的
之后提供给函数。如果不想使用尾随闭包,则需要添加参数标签:

let stockTotal2 = products.reduce(0, combine: { $0 + $1.4 })

我想我在其他地方也看到过这个例子;):我想我在其他地方也看到过这个例子;):伙计!你是个职业选手。伙计!你是个职业选手。