2015-08-28 249 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添加到該字符串的末尾。

相關問題