gpt4 book ai didi

lua - 根据表达式文本返回函数的函数

转载 作者:行者123 更新时间:2023-12-04 16:14:33 27 4
gpt4 key购买 nike

我想创建一个函数(称之为 fcreate),当给定一个字符串时,它返回一个 Lua 函数。例如,我应该可以说

f=fcreate("math.sin(x)+math.cos(x)")
print(f(2)) -- evaluates sin(2)+cos(2)
print(f(3)) -- evaluates sin(3)+cos(3)

为了简单起见,字符串只是 x 的函数。

我尝试了以下方法,但没有成功:

function fcreate(fs)
assert(loadstring("local f=function (x) return ".." end"))
return f
end

由于某种原因,返回的 f 为零。

最佳答案

试试这个。

function fcreate(fs)
local f = assert(loadstring("return " .. fs))
return f
end

如果有参数,可以使用...表示法来获取。但如果您绝对需要命名参数:

function fcreate(fs)
local f = assert(loadstring("local x = ...; return " .. fs))
return f
end

关于lua - 根据表达式文本返回函数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6803492/

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