不过某些特殊情况下 const 会出现你意想不到的结果
场景模拟
某公司某次营销活动中, 会根据用户 VIP 级别送用户一些优惠券, 最大面值520....程序无法编译
B. -50
C. 50
D. 4294967246
结果是 D, 你会不会觉得很意外一些疑问:
500 - 550 的结果为什么不是 -50 你是否注意过 const 的类型 如果你注意过...但你是否注意到 golang 里面分有符号和无符号类型的数, 如 int8 和 uint8 根据上面的结果, 有符号数的减法基本在我们认知范围之内....正数的补码和原码一样, 于是 1-2 的结果就是 255.
我们现在用的是 uint8 类型的数, 如果换成 uint16, uint32, uint64 会怎么样呢?...我们现在的服务器真的不缺这点资源. 除非你真的特别能把握这个变量的大小.
做无符号类型的减法时, 要特别注意, 一定要先去判断变量的大小.
本篇题目是 const 会导致程序结果错乱 ?