2017-08-14 7 views
2

私は別のルアファイルから呼び出すルアコードを持っていて、値を割り当てて値を出力したいが、 "無し"となっている。ここ は、コードは次のとおりです。別のルアコードを転送する

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の暗黙的returnnil - あなたはreturn SA値をロードする(またはpackage.loadedに割り当て)しているファイルは、その後、require意志場合、あなたのコードは、基本的に

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

であることを意味していますその値を返します。そのバブルをさらに上に置くには、returnを要求の前に置く:

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