如何计算 swift5 中 UInt16 值数组的总和。 下面我分享我的代码,
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, { $0 + $0 })
print("sum of myArray is \(sumOfArray)")
当我计算数组值的总和时,它给出了一个错误 “执行被中断,原因:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。”
请帮帮我。
最佳答案
UInt16
是 16 位,因此它可以容纳的最大无符号整数值为 65535。这小于您的结果总和 162700。
使用
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 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
关于ios - 如何快速计算 UInt16 值数组的总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59008233/