如何计算 swift 中 UInt16 值数组的总和?
How to calculate the sum of array of UInt16 values in swift?
如何在 swift5 中计算 UInt16 值数组的总和。
下面我分享我的代码,
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, { [=11=] + [=11=] })
print("sum of myArray is \(sumOfArray)")
当我计算数组值的总和时,出现如下错误
"Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)."
请帮帮我
UInt16
是 16 位,因此它可以容纳的最大无符号整数值为 65535。这小于你的结果总和 162700。
使用
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, { (UInt32([=10=]) + UInt32()) })
print("sum of myArray is \(sumOfArray)")
甚至更强大
let sumOfArray = myArray.reduce(0, { [=11=] + UInt()) })
顺便说一句,我认为您打错了字,在您的 reduce
中,您的意思是 [=14=] +
添加到@Kamil 的回答,
如果只需要使用return UInt16,可以使用溢出运算符:
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, {[=10=] &+ })
print("sum of myArray is \(sumOfArray)")
如何在 swift5 中计算 UInt16 值数组的总和。 下面我分享我的代码,
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, { [=11=] + [=11=] })
print("sum of myArray is \(sumOfArray)")
当我计算数组值的总和时,出现如下错误 "Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)."
请帮帮我
UInt16
是 16 位,因此它可以容纳的最大无符号整数值为 65535。这小于你的结果总和 162700。
使用
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, { (UInt32([=10=]) + UInt32()) })
print("sum of myArray is \(sumOfArray)")
甚至更强大
let sumOfArray = myArray.reduce(0, { [=11=] + UInt()) })
顺便说一句,我认为您打错了字,在您的 reduce
中,您的意思是 [=14=] +
添加到@Kamil 的回答,
如果只需要使用return UInt16,可以使用溢出运算符:
let myArray: [UInt16] = [23200, 23200, 23300, 23300, 23200, 23300, 23200]
let sumOfArray = myArray.reduce(0, {[=10=] &+ })
print("sum of myArray is \(sumOfArray)")