Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数组 – 在swift中使用for循环汇总数组的问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试迭代一个数组并使用泛型来总结所有值,如下所示: func reduceDaArray <T, U>(a: [T], startingValue: U, summed: (U, T) -> U) -> U { var sum = 0 for number in a { sum = sum + number } return sum }
我正在尝试迭代一个数组并使用泛型来总结所有值,如下所示:
func reduceDaArray <T,U>(a: [T],startingValue: U,summed: (U,T) -> U) -> U {

    var sum = 0

    for number in a {
        sum = sum + number
    }

    return sum
}

reduceDaArray([2,3,4,5,6],2,+) //(22)

它给了我以下错误

关于行和=总和数,二进制运算符”不能应用于’Int’和’A’类型的操作数

关于行返还总和,Int不能转换为’U’

我知道这可以通过reduce方法更好地完成,但是我想使用迭代完成任务来实现这个实例.为什么会出现这些错误?我从未明确表示T是Int.

在reduceDaArray()函数中,
var sum = 0

声明一个整数而不是使用给定的startingValue.

sum = sum + number

尝试将泛型数组元素添加到该整数,而不是使用
给定的总和闭包.

所以你可能意味着什么

func reduceDaArray <T,T) -> U) -> U {

    var sum = startingValue
    for number in a {
        sum = summed(sum,number)
    }
    return sum
}

编译和按预期工作:

let x = reduceDaArray([2,+)
println(x) // 22
let y = reduceDaArray([1.1,2.2],3.3,*)
println(y) // 7.986
let z = reduceDaArray(["bar","baz"],"foo") { $0 + "-" + $1 }
println(z) // foo-bar-baz

大佬总结

以上是大佬教程为你收集整理的数组 – 在swift中使用for循环汇总数组的问题全部内容,希望文章能够帮你解决数组 – 在swift中使用for循环汇总数组的问题所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: