gpt4 book ai didi

lua - 如何检查脚本是否通过dofile()包含或直接在Lua中运行? [复制]

转载 作者:行者123 更新时间:2023-12-03 13:48:53 26 4
gpt4 key购买 nike

这个问题已经在这里有了答案:




9年前关闭。




Possible Duplicate:
“main” function in Lua?



在Python中,您可以很容易地检查脚本是否被直接调用(如果需要的话,通常是为了测试而调用一些函数):
if __name__ == "__main__":
main()

有没有办法在Lua中做同样的事情,以检测它是直接运行( lua foo.lua)还是包含在另一个脚本( dofile('foo.lua'))中。

dofile('foo.lua')之前的主脚本文件中总是定义一个虚拟全局变量,然后检查 foo.lua是否已定义,这是通常的(而且很丑陋的)方法,但是如果有更好的方法可以这样做。

最佳答案

在顶层,您可以检查debug.getinfo(2)是否为nil

http://www.lua.org/manual/5.1/manual.html#pdf-debug.getinfo

you can give a number as the value of function, which means the function running at level function of the call stack of the given thread: level 0 is the current function (getinfo itself); level 1 is the function that called getinfo; and so on. If function is a number larger than the number of active functions, then getinfo returns nil.

关于lua - 如何检查脚本是否通过dofile()包含或直接在Lua中运行? [复制],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com