Menu
CoddyTech

おさらい - シンプルなイベントハンドラー

CoddyのLuaジャーニー「ロジックとプログラムの流れ」セクションの一部。レッスン 15/54。

challenge icon

チャレンジ

簡単

入力パラメーターに基づいて、事前登録されたイベントを持つシンプルなイベントシステムを作成し、そのうち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オンラインコンパイラ