おさらい - シンプルなイベントハンドラー
CoddyのLuaジャーニー「ロジックとプログラムの流れ」セクションの一部。レッスン 15/54。
チャレンジ
簡単入力パラメーターに基づいて、事前登録されたイベントを持つシンプルなイベントシステムを作成し、そのうち1つを実行する関数 createEventSystem を書いてください。
ロジック:
createEventSystem内で、イベントを格納する空のテーブルを作成しますeventNameとcallback(イベントが実行されたときに後で実行する関数)を受け取り、イベント名をキーとしてコールバックをイベントテーブルに格納するregister関数を定義しますeventNameとargを受け取り、イベントテーブルからコールバックを検索し、存在する場合は引数を渡して呼び出すtrigger関数を定義します- 何かを実行する前に、次の3つのイベントを登録します:
"double": 数値を受け取り、それに2を掛けた値を返します"square": 数値を受け取り、その数値の2乗を返します"increment": 数値を受け取り、それに1を加えた値を返します
eventNameパラメーターで指定されたイベントを、valueパラメーターを使って実行します- 実行したイベントの結果を返します。イベントが存在しない場合は
"Event not found"を返します
パラメーター:
eventName(string): 実行するイベントの名前value(number): イベントのコールバックに渡す値
戻り値:
- コールバック関数の結果 (number)、またはイベントが存在しない場合は
"Event not found"(number|string)
自分で試してみよう
function createEventSystem(eventName, value)
-- ここにコードを書いてください
end
ロジックとプログラムの流れのすべてのレッスン
自分で練習してみよう: Luaオンラインコンパイラ