You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Lua的'\ddd'转义序列采用十进制而非八进制?

Lua用十进制\ddd转义而非八进制的原因

Lua选择十进制作为字符串字节转义的基数,核心是出于实用和简洁的设计思路,和主流语言的八进制选择差异主要来自这几点:

  • 直观性拉满:十进制是所有人最熟的计数方式,比如要表示ASCII的换行符(十进制10),直接写\010就行,不用先把10转成八进制的12再写\012,省了换算步骤,也不容易写错。
  • 没歧义更省心:八进制转义在有些场景下容易和后续数字搞混,比如\1234在部分语言里会被解析成八进制123加数字4,但Lua的三位十进制限制刚好卡单字节的0-255范围,写完三位就截止,不会和后面的内容冲突。
  • 贴合Lua的极简风格:Lua从设计之初就追求轻量、少规则,十进制转义不需要额外前缀(比如八进制的0),语法更干净,也不用开发者记额外的前缀规则。
  • 目标场景适配:Lua早期多用于嵌入式、快速脚本开发,这类场景下开发者更关注直接用十进制对应字节值,八进制的传统继承对他们来说没那么重要。

主流语言比如C、Python用八进制,主要是继承C的历史传统,但Lua走的是自己的实用主义路线,所以选了更接地气的十进制转义。

引用自Lua参考手册:
我们可通过数值(含嵌入零)指定短字面量字符串中的任意字节,这可通过转义序列\ddd实现,其中ddd为最多三位十进制数字。

内容的提问来源于stack exchange,提问作者JustLoveCode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 23:37:37