在 Swift 2.0 中使用 reduce() 时出错
Error when using reduce() in Swift 2.0
注意:这也适用于 Swift 3.0
当我尝试使用 reduce
函数时,我收到一条错误消息:
reduce is unavailable: call the 'reduce()' method on the sequence
我已经想出了如何使用 enumerate()
函数来实现这一点,但我似乎无法解决这个问题。这是返回错误的代码行:
var hashValue: Int {
return reduce(blocks, 0) { [=11=].hashValue ^ .hashValue }
}
您解决这个问题的方式与您解决 enumerate()
问题的方式相同。在 Swift 2 中,reduce 已作为全局函数被删除,并通过协议扩展作为符合 SequenceType
协议的所有对象的实例方法添加。用法如下
var hashValue: Int {
return blocks.reduce(0) { [=10=].hashValue ^ .hashValue }
}
注意:这也适用于 Swift 3.0
当我尝试使用 reduce
函数时,我收到一条错误消息:
reduce is unavailable: call the 'reduce()' method on the sequence
我已经想出了如何使用 enumerate()
函数来实现这一点,但我似乎无法解决这个问题。这是返回错误的代码行:
var hashValue: Int {
return reduce(blocks, 0) { [=11=].hashValue ^ .hashValue }
}
您解决这个问题的方式与您解决 enumerate()
问题的方式相同。在 Swift 2 中,reduce 已作为全局函数被删除,并通过协议扩展作为符合 SequenceType
协议的所有对象的实例方法添加。用法如下
var hashValue: Int {
return blocks.reduce(0) { [=10=].hashValue ^ .hashValue }
}