lua相当于python repr

时间:2014-02-08 18:21:19

标签: python lua repr

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

1 个答案:

答案 0 :(得分:5)

最接近的等价物是string.format%q选项。

  

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