我的问题有多个部分,但首先这是我的示例 lua 代码 (test.lua):
local traceback = debug.traceback
local inspect = require('inspect')
local foo = "function nop(); print('this is war'); return true; end"
local f = loadstring(foo)
local result = f()
print(result)
local status, val= xpcall(function () return f() end,debug.traceback)
print('status .. ' .. tostring(status))
print(val)
所以,
当我运行
local result = f()
时。我仍然看到result
值为nil
当函数
f
被执行时。为什么我看不到print
o/p。
最佳答案
您加载到 f
中的 foo
中的代码块不会返回任何值。
它定义了一个函数,仅此而已。
如果你想在运行时从 block 中返回函数,你需要将 return nop
添加到字符串的末尾。
关于lua - 为什么我在我的 lua 函数中看不到打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32272377/