gpt4 book ai didi

swift - 为什么 reduce 对 Struct 不起作用?

转载 作者:可可西里 更新时间:2023-11-01 00:16:34 24 4
gpt4 key购买 nike

我有以下代码

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), { $0.width + $1.width })

并期望 reduce 对我的结构中的 width 求和。但它会引发编译器错误(您可以在 Playground 中测试)。

最佳答案

reduce 需要的函数有两个参数:累加值和序列中的下一项。您的函数需要两个序列项(Tab 结构)。由于您要返回一个 float ,因此累积值是一个 float ,而不是您期望的 Tab 。正确的调用是:

let w =  reduce(subTabs, CGFloat(0), { $0 + $1.width })

关于swift - 为什么 reduce 对 Struct 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30177724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com