gpt4 book ai didi

ios - 如何在 iOS Swift 中添加两个 UInt8 变量?

转载 作者:行者123 更新时间:2023-12-01 17:37:17 26 4
gpt4 key购买 nike

假设有两个变量:

let number1 : UInt8 = 100;
let number2 : UInt8 = 100;

您添加并打印它们

print(number1 + number2)  //This prints 200

现在再定义一个

let number3 : UInt8 = 200;

现在尝试添加

print(number1 + number3)  // Throws execution was interrupted

我知道 number1 和 number3 的总和会超出 UInt8 的范围,但显式转换也无济于事,例如,以下行也会给出相同的错误:

print(UInt8(number1 + number3)) // Throws execution was interrupted

我找到的方法是执行以下操作:

print(Int(number1) + Int(number3))

当 UInt8 的总和超出范围时,是否有更好的方法来添加 UInt8 数?

最佳答案

Girish K 古普塔,

UInt8 的最大范围是 0 到 255。您可以使用 UInt8.minUInt8.max 检查。基本上是 0 到 2 的 8 次方。

print(number1 + number3) 的问题将返回 300。300 大于 255,因此崩溃。

当你添加两个 UInt8 结果将默认转换为 UInt8 因此崩溃

最后,当您 Int(number1) + Int(number3) 时,您强制将 number1 和 number3 转换为 Int。

当您使用 Int 时,其值的范围取决于您运行它的平台(32 位或 64 位)。例如,对于 32 位,它的范围可以是 -2,147,483,648 到 2,147,483,647。

当您将 Int 添加到 Int 时,结果将被类型转换为 Int。相信我 300 在范围内:)

根据你的问题有没有更好的方法:)

Apple 的文档明确指定并指示使用 Int 而不是 UInt8 或 UInt32 甚至 UInt64,除非使用 UInt8、UInt32 或 UInt64 是绝对必要的。

这里引用自 apple 的文档 :)

“Use UInt only when you specifically need an unsigned integer type with the same size as the platform’s native word size. If this is not the case, Int is preferred, even when the values to be stored are known to be non-negative. A consistent use of Int for integer values aids code interoperability, avoids the need to convert between different number types, and matches integer type inference,”

Excerpt From: Apple Inc. “The Swift Programming Language (Swift 2.2).” iBooks. https://itun.es/in/jEUH0.l

所以最好的办法是:) 按照苹果的说明:) 将 number1、number2 和 number3 更改为 Int :) 问题已解决 :)

因此没有崩溃 :)

关于ios - 如何在 iOS Swift 中添加两个 UInt8 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37438167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com