如何快速计算UInt16值数组的总和?

如何在swift5中计算UInt16值数组的总和。 在下面,我分享我的代码,

let myArray: [UInt16] = [23200,23200,23300,23200]
let sumOfArray = myArray.reduce(0,{ $0 + $0 })
print("sum of myArray is  \(sumOfArray)")

当我计算数组值的总和时,它给出了一个错误 “执行被中断,原因:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)。”

请帮助我。

niugao 回答:如何快速计算UInt16值数组的总和?

UInt16是16位的,因此它可以容纳的最大无符号整数值为65535。它小于结果总和162700。

使用

let myArray: [UInt16] = [23200,23200,23300,23200]
let sumOfArray = myArray.reduce(0,{ (UInt32($0) + UInt32($1)) })
print("sum of myArray is  \(sumOfArray)")

或更强大

let sumOfArray = myArray.reduce(0,{ $0 + UInt($1)) })

顺便说一句,我相信您有错字,在您的reduce中,您的意思是$0 + $1

,

在@Kamil的答案中,

如果仅需要使用返回UInt16,则可以使用溢出运算符:

let myArray: [UInt16] = [23200,{$0 &+ $1 })
print("sum of myArray is  \(sumOfArray)")
本文链接:https://www.f2er.com/3045614.html

大家都在问