Lua 関数
Lua では、関数はステートメントや式を抽象化する主な方法です。これは、いくつかの特別なタスクを処理したり、いくつかの値を計算したりするために使用できます。
Lua は、プログラム内で簡単に呼び出すことができる多くの組み込み関数を提供します。たとえば、print() 関数は、渡されたパラメーターをコンソールに出力できます。
Lua 関数には主に 2 つの用途があります:
1. 指定されたタスクを完了する。この場合、関数は呼び出しステートメントとして使用されます。2. 関数は次のようになります。代入文の式として使用される。
関数定義
Lua プログラミング言語の関数定義形式は次のとおりです:
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn) function_body return result_params_comma_separated end
分析:
optional_function_scope: このパラメーターは、関数がグローバル関数であるか、グローバル関数であるかを指定するためのオプションです。ローカル関数、未設定 このパラメータの最後はグローバル関数です。関数をローカル関数に設定する必要がある場合は、キーワード
- local を使用する必要があります。
- function_name:
関数名を指定します。
- argument1、argument2、argument3...、argumentn:
関数のパラメータ。複数のパラメータはカンマで区切られ、関数にはパラメータを持たないこともできます。
- function_body:
関数本体、関数内で実行する必要があるコードステートメントのブロック。
- result_params_comma_ Separated:
関数の戻り値、Lua 言語関数は複数の値を返すことができ、各値はカンマで区切られます。
- 例次の例では、パラメーター num1、num2 を備えた関数 max()
を定義します。この関数は、2 つの値の大きさを比較し、最大値を返すために使用されます。上記のコードは次のとおりです:
--[[ 函数返回两个值的最大值 --]] function max(num1, num2) if (num1 > num2) then result = num1; else result = num2; end return result; end -- 调用函数 print("两值比较最大值为 ",max(10,4)) print("两值比较最大值为 ",max(5,6))
Lua の場合 次の例に示すように、関数をパラメータとして関数に渡すことができます: 两值比较最大值为 10
两值比较最大值为 6
上記のコードの実行結果は次のとおりです:
myprint = function(param) print("这是打印函数 - ##",param,"##") end function add(num1,num2,functionPrint) result = num1 + num2 -- 调用传递的函数参数 functionPrint(result) end myprint(10) -- myprint 函数作为参数传递 add(2,5,myprint)複数の戻り値Luaこの関数は、string.find などの複数の結果値を返すことができます。これは、一致する文字列「開始添え字と終了添え字」を返します (一致する文字列が存在しない場合は nil を返します)。
这是打印函数 - ## 10 ## 这是打印函数 - ## 7 ##Lua関数では、次のようにreturn後に返される値のリストを列挙することで複数の値を返すことができます:
> s, e = string.find("www.php.cn", "php") > print(s, e) 5 10
上記のコードの実行結果は次のとおりです:
function maximum (a) local mi = 1 -- 最大值索引 local m = a[mi] -- 最大值 for i,val in ipairs(a) do if val > m then mi = i m = val end end return m, mi end print(maximum({8,10,23,12,5}))変数パラメータLua 関数は、C 言語と同様に可変数のパラメーターを受け入れることができ、関数パラメーター リストで 3 つのドット (...) を使用して、関数に可変パラメーターがあることを示します。 Lua は関数のパラメータを arg というテーブルに配置します。
#arg
は渡されるパラメータの数を表します。
たとえば、いくつかの数値の平均を計算します:
23 3
上記のコードの実行結果は次のとおりです: function average(...)
result = 0
local arg={...}
for i,v in ipairs(arg) do
result = result + v
end
print("总共传入 " .. #arg .. " 个数")
return result/#arg
end
print("平均值为",average(10,5,3,4,5,6))