用D编程语言考虑这个:
import luad.all
class C1
{
auto l1 = new LuaState;
l1["somebool"] = true;
this()
~this()
}
class C2
{
C1 cc = new C1;
auto l2 = new LuaState;
// here I want to inject l1["somebool"] to l2
}
void main() { C2 cx = new C2; }
作为解决方案,我可能会创建一个局部变量
bool var = cc.l1["somebool"]
然后将其插入l2中 - 但这似乎不是最佳解决方案。
有没有办法将类中定义的一个lua堆栈复制到另一个类中的另一个堆栈?
答案 0 :(得分:0)
我对LuaD
或Lua
了解不多,但您可以将全局变量提取到结构中,如此page上的最后一个示例所示。然后,您可以将结构中的值设置为l2
状态。
// warning: untested
struct State
{
bool somebool;
}
State state;
l1.globals.toStruct!State(state);
foreach (member; __traits(allMembers, State))
{
l2.globals.set(member, __traits(getMember, state, member));
}