知识卡片

整数溢出默认触发陷阱

专业/工作 · 740

内容

固定位宽整数(如Int8)运算结果超出可表示范围时,Swift的普通操作符默认触发运行时陷阱,让程序立即崩溃并报错,而不是像大多数语言那样静默折回(如127+1变成-128)。需要折回行为时必须显式使用溢出操作符&+&-&*主动选择。这是”安全优先”的设计取舍:溢出往往是难以定位的严重bug根源,与其让错误悄悄传播到后面才暴露,不如让程序在出错的第一时间崩溃。发散:这种”默认最严格、宽松行为需显式声明”的思路,与[[let优先于var的不可变默认]]是同一套哲学在不同维度上的重复——Swift反复用编译器/运行时的强制中断,把开发者的注意力提前拽到潜在风险点上。

参考来源

《Swift编程权威指南》第4章《数》