Menu
CoddyTech

回顾:简单事件处理程序

本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 15 课,共 54 课。

challenge icon

挑战

简单

编写一个函数 createEventSystem,用于创建一个简单的事件系统,其中预先注册了事件,并根据输入参数触发其中一个事件。

逻辑:

  • 在 createEventSystem 内创建一个空表来存储事件
  • 定义一个 register 函数,它接收 eventName 和 callback,并将回调函数存入事件表,以事件名称作为键
  • 定义一个 trigger 函数,它接收 eventName 和 arg,在事件表中查找回调函数,并在找到时使用参数调用它
  • 预先注册三个事件:
    • "double":接收一个数字,并返回它乘以 2 的结果
    • "square":接收一个数字,并返回它的平方
    • "increment":接收一个数字,并返回它加 1 的结果
  • 使用 value 参数触发由 eventName 参数指定的事件
  • 返回触发事件的结果;如果事件不存在,则返回 "Event not found"

参数:

  • eventName(字符串):要触发的事件名称
  • value(数字):要传递给事件回调函数的值

返回值:

  • 回调函数的结果(数字);如果事件不存在,则返回 "Event not found"(数字 | 字符串)

亲手试试

function createEventSystem(eventName, value)
    -- 在这里编写代码
end

逻辑与流程中的所有课

自己练习: Lua 在线编译器