2017-08-14 12 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) 
相關問題