将lua代码转发给另一个

时间:2017-08-14 14:51:55

标签: lua

我有lua代码,我从另一个lua文件调用,想要分配一个值并打印出值,但我得到了" nil",请你帮我。 这是代码:

function main_setup()

  package.path = package.path ..";C:/Users/kude/Desktop/mqtt1/?.lua"              

  require "ds18b20"

end

local a = main_setup()

print(a)

输出:

  

2 个答案:

答案 0 :(得分:3)

function main_setup()
   package.path = package.path ..";C:/Users/kude/Desktop/mqtt1/?.lua"              
   require "ds18b20"
end

此功能不会返回任何内容。

所以

local a = main_setup()

相当于

local a = nil

因此

  

的预期输出
print(a)

答案 1 :(得分:1)

函数不会隐式返回最后一个语句的结果。如果没有明确return,则Lua隐式return s nil - 这意味着您的代码基本上是

function main_setup()
   package.path = package.path ..";C:/Users/kude/Desktop/mqtt1/?.lua"              
   require "ds18b20"
   return nil
end

如果您要加载的文件return是一个值(或将其分配给package.loaded),则require将返回该值。为了让这个泡沫更进一步,请在{:1>}前面加上return

function main_setup()
   package.path = package.path ..";C:/Users/kude/Desktop/mqtt1/?.lua"              
   return require "ds18b20"
end
local a = main_setup()
print(a)