第一級の値としての関数
CoddyのLuaジャーニー「ロジックと制御フロー」セクションの一部。レッスン 12/54。
Luaでは、関数は単にタスクを実行するコードのブロックというだけではありません。関数は、他のデータ型と同じように扱える値です。つまり、数値、文字列、テーブルを扱うのと同じ方法で、関数を扱うことができます。
関数を変数に格納できます:
local greet = function()
print("Hello!")
end
greet() -- 出力: Hello!ここでは、関数が変数 greet に代入されており、通常の関数と同じように呼び出すことができます。これにより、コードの構成方法に関して強力な可能性が広がります。
関数は、他の関数への引数として渡すこともできます。これは、ある関数に別の関数で定義された動作を使用させたい場合に特に便利です。
function executeAction(action)
action()
end
local sayHello = function()
print("Hello from a function!")
end
executeAction(sayHello) -- 出力: Hello from a function!この例では、executeActionはパラメーターとして関数を受け取り、それを呼び出します。関数sayHelloは、数値や文字列を渡すのと同じように渡されます。
関数は、ほかの関数を返すことさえできます。これにより、特定の条件やパラメーターに基づいて、関数を動的に作成できます。
function createMultiplier(factor)
return function(number)
return number * factor
end
end
local double = createMultiplier(2)
print(double(5)) -- 出力: 10チャレンジ
簡単applyOperation 関数を作成してください。この関数は a、b、operation を受け取り、2つの数値に operation function を適用した結果を返します。
operation パラメーターは、a と b を引数として呼び出される function を含むテーブルです。
ロジック:
"func"キーを使用してoperationテーブルから function を取り出すaとbを引数としてその function を呼び出す- 結果を返す
パラメーター:
a(number): 最初の数値b(number): 2番目の数値operation(table):"func"キーに保存された function を含むテーブル
戻り値: a と b を使って operation function を呼び出した結果 (number)
自分で試してみよう
function applyOperation(a, b, operation)
-- ここにコードを書いてください
end
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックと制御フローのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ