为什么 reduce 对 Struct 不起作用?
Why does reduce not work on Struct?
我有以下代码
struct Tab {
var origin:CGFloat
var width:CGFloat
init(width:CGFloat) {
origin = 0
self.width = width
}
}
let subTabs = [Tab(width:1), Tab(width:2)]
let w = reduce(subTabs, CGFloat(0), { [=10=].width + .width })
并期望 reduce
总结我的结构中的 width
。但是它会引发编译错误(您可以在 Playground 中测试)。
reduce 函数需要两个参数:累加值和序列中的下一项。您的函数需要两个序列项(Tab
结构)。由于您要返回一个浮点数,因此累积值是一个浮点数,而不是您期望的 Tab
。正确的叫法是:
let w = reduce(subTabs, CGFloat(0), { [=10=] + .width })
我有以下代码
struct Tab {
var origin:CGFloat
var width:CGFloat
init(width:CGFloat) {
origin = 0
self.width = width
}
}
let subTabs = [Tab(width:1), Tab(width:2)]
let w = reduce(subTabs, CGFloat(0), { [=10=].width + .width })
并期望 reduce
总结我的结构中的 width
。但是它会引发编译错误(您可以在 Playground 中测试)。
reduce 函数需要两个参数:累加值和序列中的下一项。您的函数需要两个序列项(Tab
结构)。由于您要返回一个浮点数,因此累积值是一个浮点数,而不是您期望的 Tab
。正确的叫法是:
let w = reduce(subTabs, CGFloat(0), { [=10=] + .width })