Function Lua-序列化没有loadstring的函数?

Function Lua-序列化没有loadstring的函数?,function,serialization,lua,storage,Function,Serialization,Lua,Storage,在lua中,是否可以序列化函数(不带upvalue)并在不使用LOADSTRING的情况下存储它们 您可以在根本不使用loadstring的情况下序列化和存储它们-使用string.dump。如果要反序列化它们,只需要loadstring 如果您以后需要它来重用实际函数(而不是为了其他一些简单的目的,比如比较),您仍然需要访问至少字符串版本的loadstring,因为这是唯一允许您动态评估Lua源代码的工具 如果您有,您可以尝试: 1) 如果您有访问权限,请修改Lua引擎本身,将函数定义的源代码

在lua中,是否可以序列化函数(不带upvalue)并在不使用LOADSTRING的情况下存储它们

您可以在根本不使用
loadstring
的情况下序列化和存储它们-使用
string.dump
。如果要反序列化它们,只需要
loadstring

如果您以后需要它来重用实际函数(而不是为了其他一些简单的目的,比如比较),您仍然需要访问至少字符串版本的
loadstring
,因为这是唯一允许您动态评估Lua源代码的工具

如果您有,您可以尝试: 1) 如果您有访问权限,请修改Lua引擎本身,将函数定义的源代码保存在某个地方。 2) 将Lua字节码写入Lua中的Lua源转换器。对于Lua的简单VM,这并不像听起来那么困难


如果您完全没有访问
loadstring
的权限,您可以尝试在Lua中编写luavm。这比一个简单的转换器更难,但仍然是可行的。

你能提供更多关于你想做什么的信息吗?您的意思是以一种不需要以后使用loadstring的方式序列化它们吗?因为您将使用string.dump来序列化函数。我不能使用loadstring,因为我的lua引擎阻止了它的使用。。那么,现在是否可以存储函数供以后使用呢?啊,好吧。。谢谢你的详细回答!写一个虚拟机是超越我,不值得肯定!无论如何谢谢你!