关闭 Lua 状态并重新打开
Close Lua State and Reopen
我在 android 中使用 Lua 但不是很清楚我是否可以这样做:
LuaState L = null;
function loaddata(String data)
{
if ( L !=null && L.isClosed() == false)
L.close();
L = LuaStateFactory.newLuaState();
L.openLibs();
L.LdoString(data);
}
loaddata(string_1) ;
//and later
loaddata(string_2);
我想清除 L 并将其用于另一个数据,string_2
。
我的函数 L.LdoString(data);
会有对应于 string_2
的新数据吗?
还是 string_1
加 string_2
在 L
?
在您的代码中,当您调用 L.close()
时,您将关闭现有的 lua 状态。
然后您使用 LuaStateFactory.newLuaState()
创建一个新的(干净的)lua 状态。
之前调用该函数的任何内容都不会以新状态退出。
(我假设这里的函数像它们看起来的那样工作,并且与具有相似名称的 C api 函数一样工作。)
我在 android 中使用 Lua 但不是很清楚我是否可以这样做:
LuaState L = null;
function loaddata(String data)
{
if ( L !=null && L.isClosed() == false)
L.close();
L = LuaStateFactory.newLuaState();
L.openLibs();
L.LdoString(data);
}
loaddata(string_1) ;
//and later
loaddata(string_2);
我想清除 L 并将其用于另一个数据,string_2
。
我的函数 L.LdoString(data);
会有对应于 string_2
的新数据吗?
还是 string_1
加 string_2
在 L
?
在您的代码中,当您调用 L.close()
时,您将关闭现有的 lua 状态。
然后您使用 LuaStateFactory.newLuaState()
创建一个新的(干净的)lua 状态。
之前调用该函数的任何内容都不会以新状态退出。
(我假设这里的函数像它们看起来的那样工作,并且与具有相似名称的 C api 函数一样工作。)