gpt4 book ai didi

swift - 函数式 Swift 返回错误

转载 作者:行者123 更新时间:2023-11-28 07:12:44 24 4
gpt4 key购买 nike

为什么 r1 可以工作但 r2 会抛出编译错误(无法使用类型为“(NSArray, [Int])”的参数列表调用“+”)?

func reduce<T1, T2>(input:[T1], initialResult: T2, f:(T2, T1) -> T2) -> T2 {
var result = initialResult
for x in input {
result = f(result, x)
}
return result
}

let array2D = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

let r1 = reduce(array2D, []){result, x in
result + x}

let r2 = reduce(array2D, []){result, x in
return result + x}

最佳答案

如果您指定返回类型,它会消除此错误,例如:

let r3 = reduce(array2D, []){result, x -> [Int] in
return result + x}

如果您指定初始空数组是 Int 数组,则错误会消失:

let r4 = reduce(array2D, [Int]()){result, x in
return result + x}

关于swift - 函数式 Swift 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741954/

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