复制LuaD类表

考虑使用 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 堆栈复制到另一个类中的另一个堆栈中呢?

点赞
用户1230135
用户1230135

我对LuaDLua不是很了解,但是您可以按照此页面上的最后一个示例将全局变量提取到 struct 中。然后,您可以将 struct 的值设置到 l2 状态中。

// 警告:未经测试

struct State
{
  bool somebool;
}

State state;
l1.globals.toStruct!State(state);

foreach (member; __traits(allMembers, State))
{
    l2.globals.set(member, __traits(getMember, state, member));
}
2014-10-04 05:55:53