Error[8]: Undefined offset: 5, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我正在尝试迭代一个数组并使用泛型来总结所有值,如下所示: 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) // 22let y = reduceDaArray([1.1,2.2],3.3,*)println(y) // 7.986let z = reduceDaArray(["bar","baz"],"foo") { [+++] + "-" +  }println(z) // foo-bar-baz
总结

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

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

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 165, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
数组 – 在swift中使用for循环汇总数组的问题_app_内存溢出

数组 – 在swift中使用for循环汇总数组的问题

数组 – 在swift中使用for循环汇总数组的问题,第1张

概述我正在尝试迭代一个数组并使用泛型来总结所有值,如下所示: 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) // 22let y = reduceDaArray([1.1,2.2],3.3,*)println(y) // 7.986let z = reduceDaArray(["bar","baz"],"foo") {  + "-" +  }println(z) // foo-bar-baz
总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1089243.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存