我有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)
输出:
零
答案 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)