如何在lua中获取原始函数

假设我编写以下代码:

>a=print
>print=1
>a=1

> print(1)
stdin:1: attempt to call global 'print' (a number value)
stack traceback:
    stdin:1: in main chunk
    [C]: in ?

如何获取原始函数 "print"?

点赞
用户734069
用户734069

你做不到。

Lua函数是值,就像任何其他值一样。如果你修改Lua函数所存储的值,那么函数就不再存储在那里了。如果你修改持有该函数的最后一个值……那么函数就永远丢失了。

从C中,您可能会再次调用luaopen_base,但这仅可从C中访问。

2016-05-23 01:41:04