gpt4 book ai didi

lua - 有条件地执行来自参数的代码

转载 作者:行者123 更新时间:2023-12-02 21:35:21 24 4
gpt4 key购买 nike

我正在尝试根据全局变量有条件地执行通过函数参数传入的一些代码块。

我尝试了以下方法:

function PrintCondition(CodeIfA, CodeIfB)
if SomeGlobal == "A" then
loadstring(CodeIfA);
return true;
elseif SomeGlobal == "B" then
loadstring(CodeIfB);
return true;
else
Error();
return false;
end
end

然后我调用该函数

local temp = PrintCondition(
[[
print("global is A");
]],
[[
print("global is B");
]]
);
print(temp); -- prints 'true'

但是,似乎不起作用。即使我错误地格式化字符串以引发语法错误,我也什么也得不到。

我是否正在尝试一些无法完成的事情?

最佳答案

所有loadstring()(或Lua 5.2中的load())所做的只是加载字符串,它并没有真正运行它,你需要保存它到一个函数然后运行它:

local func = loadstring(CodeIfA);
func();

关于lua - 有条件地执行来自参数的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21546835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com