【发布时间】:2015-07-10 20:37:03
【问题描述】:
我在 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(),或者不需要
-
啊。我错过了那里的
L.close()电话。是的,那个调用(假设你需要通过创建一个全新的状态来遵循它)正在关闭状态并且你正在创建一个新状态。