off-by-one:指“差一错误/边界差一”的编程错误,通常发生在计数、索引或循环边界上,结果比正确值多 1 或少 1(例如把应从 0 开始写成从 1 开始,或循环条件写成 </<= 搞错)。
/ˌɔf baɪ ˈwʌn/
The loop runs one extra time because of an off-by-one error.
由于一个差一错误,这个循环多执行了一次。
Off-by-one mistakes often appear when converting between 0-based and 1-based indexing, which can cause subtle bugs in array boundaries.
把从 0 开始的索引和从 1 开始的索引互相转换时,经常会出现差一错误,从而在数组边界处引发不易察觉的漏洞。
来自英文结构 off by one,直译为“偏差一个(单位)”。其中 off 表示“偏离/不正确”,by one 表示“相差 1”。后来在程序员语境中固定化为复合形容词(常写作 off-by-one),用来特指计数或边界上的“差一”问题。
该词属于现代计算机术语,更多见于技术写作与科普而非传统文学作品;在一些以编程文化为主题的非虚构作品中常被提及,例如: