验证减去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) { }