lua関数

1832 ワード

1.関数定義
luaはfunction定義関数を使用し、構文は次のとおりです.
function  fun_name(args)  --args      ,           
    --body
end

上記の方法では、ネーミングスペースを汚染せずにパフォーマンス損失を低減するために、できるだけローカル関数を使用する必要があります(functionの前にlocal宣言を追加すればよい)グローバル関数を定義しました.
local function  fun_name(args)  --args      ,           
    --body
end

2.関数パラメータ
関数はいくつかの規則を参照する.パラメータの個数がパラメータの個数より大きい場合、左から右へ、余分な実パラメータは無視される.パラメータの個数がパラメータの個数より小さい場合、左から右へ、初期化されていないパラメータがnil 3に初期化される.luaは変長パラメータをサポートします.で...パラメータリストの後ろに表示されます.可変長パラメータには対応するパラメータのリストはありません.彼はすべてのパラメータを集めて変参式に入れます(...).この式の値はすべてのパラメータ値を表します.関数が値を多く返す場合と似ています.1つのパラメータ式が他の式の内部にあるか、またはいくつかの式の中間にある場合、彼はlocal cc,dd,ee=a,...などの要素のみを返します.34. この式が式リストの最後にある場合、カッコを使用しない限り、パラメータを調整しません.
たとえば、次の3つの関数があります.
function f(a,b) end
function g(a,b,...) end
function r() return 1,2,3 end

入力されたパラメータとパラメータのマッピングは次のとおりです.
CALL          PARAMETERS
f(3)               a=4,b=nil --   b   b nil
f(4,5)            a=4,b=5        --      
f(3,4,5)         a=3,b=4        --       
f(r(),10)        a=1,b=10      --       ,                
f(r())             a=1,b=2        --            

g(3)              a=3,b=nil, ... -->(nothing)    --b   ...          nil
g(3,4)           a=3,b=4, ...  -->(nothing)     --           nil
g(3,4,5,6)     a=3,b=4, ...  -->5 6               --         ,              
g(5,r())         a=5,b=1, ... -->2,3                 --     b        , b           。          ,          

3.関数の例
次のようにmax関数を定義し、パラメータはn 1,n 2であり、両数値のサイズを比較するために使用される.
function max(num1,num2)
    if (num1>num2) then
        result = num1
    else
        result = num2
    end

    return result    
end

print("        ",max(10,10))

お礼を言います.
LUA可変長パラメータ...3点