4

Lua 中是否有与 Python 的 repr() 函数等效的函数?换句话说,使用 \x 打印不可打印字符的函数,其中 x 是 n 或 b 等,或者如果不是 Lua 字符串转义字符,则使用 \000 代码。我用谷歌搜索,找不到任何东西。很多关于将不可打印的内容放入字符串中的内容,没有关于生成带有不可打印字符的字符串的打印友好版本。

4

1 回答 1

5

最接近的等价物%qstring.format.

q选项格式化双引号之间的字符串,必要时使用转义序列以确保它可以被 Lua 解释器安全地读回。例如,调用

 string.format('%q', 'a string with "quotes" and \n new line')

可能会产生字符串:

"a string with \"quotes\" and \
  new line"

您会注意到新行没有转换为字符对\n。如果您愿意,请尝试以下功能:

function repr(str)
    return string.format("%q", str):gsub("\\\n", "\\n")
end
于 2014-02-08T19:06:51.700 回答