【发布时间】:2020-04-19 17:19:10
【问题描述】:
我正在尝试一些代码高尔夫,我有这个功能:
func fibonacci(n: Int) {
var x1=0
var x2=1
var arr = [Int]()
for _ in 1...n {
arr.append(x1)
let temp = x1+x2
x1 = x2
x2 = temp
}
print(arr)
}
我想尝试一个单行,即:
print((1...n).reduce(([Int](),[0,1]), { ($0.0 + [$0.1[0]],[$1.1[1],$1.1[1]+$1.1[0]])}))
但我收到了这个蹩脚的编译器消息:
编译器无法合理地对该表达式进行类型检查 时间;尝试将表达式分解为不同的子表达式
有没有更好的方法来做到这一点?谢谢
【问题讨论】: