Lua-functions

提供:Dev Guides
移動先:案内検索

Lua-関数

関数は、一緒にタスクを実行するステートメントのグループです。 コードを別々の機能に分割できます。 コードを異なる関数に分割する方法はユーザー次第ですが、論理的には通常、その分割は一意であるため、各関数は特定のタスクを実行します。

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

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

関数を定義する

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

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

Luaプログラミング言語のメソッド定義は、_method header_と_method body_で構成されています。 ここにメソッドのすべての部分があります-

  • オプションの関数スコープ-キーワード_local_を使用して関数のスコープを制限したり、スコープセクションを無視してグローバル関数にすることができます。
  • 関数名-これは関数の実際の名前です。 関数名とパラメーターリストは一緒に関数シグネチャを構成します。
  • 引数-引数はプレースホルダーのようなものです。 関数が呼び出されると、引数に値を渡します。 この値は、実際のパラメーターまたは引数と呼ばれます。 パラメータリストは、メソッドの引数のタイプ、順序、および数を参照します。 引数はオプションです。つまり、メソッドには引数が含まれない場合があります。
  • 関数本体-メソッド本体には、メソッドの動作を定義するステートメントのコレクションが含まれます。
  • 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

関数の引数

関数が引数を使用する場合、引数の値を受け入れる変数を宣言する必要があります。 これらの変数は、関数の*仮パラメータ*と呼ばれます。

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

関数を呼び出す

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