gpt4 book ai didi

swift - 验证减去 UIn8 Swift

转载 作者:搜寻专家 更新时间:2023-11-01 05:32:57 25 4
gpt4 key购买 nike

如何使用 if let 或某些条件来知道是否可以减去 UInt8?例如,40 - 0x32

if let test = 40 - 0x32{
}

最佳答案

没有像这样的任何构造来测试您是否可以执行 Uint8 减法:

if let test = 40 - 0x32 { }

但您可以将其转化为您可以测试的条件。

你想确保减法不会变成负数,所以你想检查:

if 40 - 0x32 >= 0 { }

如果一个或两个值都是 UInt8 变量,即使这样也会造成麻烦,因为减法会在您检查它是否安全之前发生。

相反,您可以将 0x32 移动到等式的另一边,方法是将 0x32 添加到等式的两边,给出:

if 40 >= 0x32 { }

这也很直观,因为如果第一个数字至少与被减去的数字一样大,则减法不会为负。


替代答案:

使用 Int 执行计算,然后使用 UInt8(exactly:) 测试结果是否适合 UInt8:

var a: UInt8 = 40
let result = Int(a) - Int(0x32)

if let answer = UInt8(exactly: result) {
print("answer is \(answer)")
} else {
print("result doesn't fit in a UInt8")
}

UInt8(exactly:) 返回一个 UInt8? 如果值适合 UInt8 或者 如果该值超出 UInt8 的允许值范围,则为 nil

你可以把它写在一行中,然后更接近你原来的尝试:

if let test = UInt8(exactly: 40 - 0x32) { }

关于swift - 验证减去 UIn8 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51529579/

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