关闭Lua状态并重新打开

我正在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)  ;
//稍后
loaddata(string_2);

我想清除L并将其与另一个数据一起使用,即string_2。 我的函数L.LdoString(data);会有与string_2相对应的新数据吗? 还是它将是L中的string_1string_2

点赞
用户258523
用户258523

在你的代码中,当你调用 L.close() 时,你正在关闭现有的Lua状态。

然后,你使用 LuaStateFactory.newLuaState() 创建一个新的(干净的)Lua状态。

任何从以前调用该函数的内容都不会存在于新的状态中。

(我假设这里的函数按照它们看起来的方式并且与类似名称的C API函数具有相似的功能。)

2015-05-01 00:28:47