验证减去UIn8 Swift

验证减去UIn8 Swift,swift,Swift,如何使用if let或某些条件来知道UInt8是否可以减去?例如,40-0x32 if let test = 40 - 0x32{ } 如果您可以执行Uint8减法,则没有任何类似的构造可供测试: if let test = 40 - 0x32 { } 但是你可以把它转换成一个你可以测试的条件 您希望确保减法不会变为负数,因此要检查: if 40 - 0x32 >= 0 { } 如果一个或两个值都是UInt8变量,甚至这也会导致问题,因为减法会在检查是否安全之前发生 相反,您可以将0

如何使用
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(精确:)
测试结果是否符合
UInt8

UInt8(确切地说:)
返回一个
UInt8?
,如果该值适合
UInt8
,则该值为包装值;如果该值超出
UInt8
的允许值范围,则该值为
nil

您可以将其写在一行中,然后与您最初的尝试更接近:

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

如果40>=0x32{}
@vacawama,应该是答案;)
if let test = UInt8(exactly: 40 - 0x32) { }