Lua 中的 @ 符号代表什么意思?

我查看了 获取 lua 文件的路径,我发现:

print(debug.getinfo(1).source)

...给出了一些结果,例如:

@/Users/e/test.lua

显然,这是一个字符串作为路径,但是那个 "at sign"/"at character" @ 表示什么?它代表什么意思?

通过在互联网上搜索 Lua "at sign"(即使带上引号),也很难找到与此相关的有用信息。

点赞
用户2858170
用户2858170

这意味着该函数是在文件中定义的。

来自Lua 5.4 参考手册:4.7 调试接口

lua_Debug 的字段具有以下含义:

source:创建该函数的 chunk 的源。如果 source 以“@”开头,则意味着该函数是在文件中定义的 文件名紧跟在“@”后面。如果 source 以“=”开头,则 其余内容以用户依赖的方式描述源。否则,该函数是在字符串中定义的,其中 source 是该字符串。

Lua 手册列出了其他用途的 @。例如,warn("@off") 可用于关闭警告的发出。

2021-04-17 09:07:56