2015-08-28 212 views
3

我的问题有多个部分,但首先这是我的样品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) 

所以,

  1. 当我运行local result = f()。我仍然看到result的值为nil

  2. 当函数f被执行时。为什么我看不到print o/p。

回答

4

的代码foo您加载到f不返回任何值的块。

它定义了一个函数,但就是这样。

如果您想在块运行时从块返回函数,则需要将return nop添加到该字符串的末尾。

相关问题