2017-08-14 51 views
2

我有lua代码,我从另一个lua文件中调用并希望分配一个值并打印出该值,但我得到“无”,请您帮助我。 这里是代码:转发lua代码到另一个

function main_setup() 

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

    require "ds18b20" 

end 

local a = main_setup() 

print(a) 

输出:

回答

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

函数不会隐式返回最后一条语句的结果。如果没有明确的return,Lua的隐含return小号nil - 这意味着你的代码基本上

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

如果文件你加载return SA值(或将其分配给package.loaded),然后require会返回该值。为了让这个泡沫更进一步,在要求前加上return

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