Lua-機能

関数は、一緒にタスクを実行するステートメントのグループです。コードを個別の関数に分割できます。コードをさまざまな関数にどのように分割するかはあなた次第ですが、論理的には通常は一意であるため、各関数は特定のタスクを実行します。

Lua言語は、プログラムが呼び出すことができる多数の組み込みメソッドを提供します。たとえば、メソッドprint() コンソールに入力として渡された引数を出力します。

関数は、メソッド、サブルーチン、プロシージャなど、さまざまな名前で知られています。

関数の定義

Luaプログラミング言語でのメソッド定義の一般的な形式は次のとおりです。

optional_function_scope function function_name( argument1, argument2, argument3........, 
argumentn)
function_body
return result_params_comma_separated
end

Luaプログラミング言語のメソッド定義は、メソッドヘッダーメソッド本体で構成されます。これがメソッドのすべての部分です-

  • Optional Function Scope−キーワードlocalを使用して、関数のスコープを制限するか、スコープセクションを無視して、グローバル関数にすることができます。

  • Function Name−これは関数の実際の名前です。関数名とパラメータリストが一緒になって関数シグネチャを構成します。

  • Arguments−引数はプレースホルダーのようなものです。関数が呼び出されると、引数に値を渡します。この値は、実際のパラメーターまたは引数と呼ばれます。パラメータリストは、メソッドの引数のタイプ、順序、および数を参照します。引数はオプションです。つまり、メソッドに引数を含めることはできません。

  • Function Body −メソッド本体には、メソッドの機能を定義するステートメントのコレクションが含まれています。

  • Return − Luaでは、returnキーワードの後に​​コンマで区切られた戻り値を続けることで、複数の値を返すことができます。

以下は、と呼ばれる関数のソースコードです。 max()。この関数は、2つのパラメーターnum1とnum2を取り、2つの間の最大値を返します。

--[[ function returning the max between two numbers --]]
function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

関数の引数

関数が引数を使用する場合は、引数の値を受け入れる変数を宣言する必要があります。これらの変数は、formal parameters 関数の。

仮パラメータは、関数内の他のローカル変数と同様に動作し、関数への入力時に作成され、終了時に破棄されます。

関数の呼び出し

Lua関数を作成するときに、関数が何をしなければならないかを定義します。メソッドを使用するには、その関数を呼び出して、定義されたタスクを実行する必要があります。

プログラムが関数を呼び出すと、プログラムの制御は呼び出された関数に移されます。呼び出された関数は、定義されたタスクを実行し、returnステートメントが実行されるか、関数の終わりに達すると、プログラム制御をメインプログラムに戻します。

メソッドを呼び出すには、必要なパラメーターをメソッド名と一緒に渡す必要があります。メソッドが値を返す場合は、戻り値を格納できます。例-

function max(num1, num2)

   if (num1 > num2) then
      result = num1;
   else
      result = num2;
   end

   return result; 
end

-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))

上記のコードを実行すると、次の出力が得られます。

The maximum of the two numbers is 	10
The maximum of the two numbers is 	6

関数の割り当てと受け渡し

Luaでは、関数を変数に割り当てたり、別の関数のパラメーターとして渡すこともできます。これは、Luaでパラメーターとして関数を割り当てて渡すための簡単な例です。

myprint = function(param)
   print("This is my print function -   ##",param,"##")
end

function add(num1,num2,functionPrint)
   result = num1 + num2
   functionPrint(result)
end

myprint(10)
add(2,5,myprint)

上記のコードを実行すると、次の出力が得られます。

This is my print function -   ##	10	##
This is my print function -   ##	7	##

可変引数を持つ関数

パラメータとして「...」を使用して、Luaで可変引数を持つ関数を作成することができます。関数が平均を返し、可変引数を取ることができる例を見ると、これを把握できます。

function average(...)
   result = 0
   local arg = {...}
   for i,v in ipairs(arg) do
      result = result + v
   end
   return result/#arg
end

print("The average is",average(10,5,3,4,5,6))

上記のコードを実行すると、次の出力が得られます。

The average is	5.5