loadstring 不会有边界效应产生,他仅仅编译 chunk 成为自己内部实现的一个匿名函数。通常对他的误解是他们定义了函数。Lua 中的函数定义是发生在运行时的赋值而不是发生在编译时
loadstring 函数功能强大,但使用时需多加小心.确认没有其它简单的解决问题的方法再使用
loadstring 返回的函数和普通函数一样,可以多次被调用:
loadstring 函数功能强大,但使用时需多加小心.确认没有其它简单的解决问题的方法再使用
f = loadstring("i = i * 3")
i = 1
f()
print(i)
f = loadstring("local a = 10; return a + 20")
print(f())
3
30
loadstring 返回的函数和普通函数一样,可以多次被调用:
f = loadstring("i=i+1;return i")
local j = 0
i = 1
repeat
print(f())
j = j+1
until j>=2
2
3