函数是一等值
本课属于 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,并返回对这两个数字调用操作函数后的结果。
operation 参数是一个表,其中包含一个函数。调用该函数时,会将 a 和 b 作为参数传入。
逻辑:
- 使用键
"func"从operation表中提取函数 - 将
a和b作为参数传入,调用该函数 - 返回结果
参数:
a(数字):第一个数字b(数字):第二个数字operation(表):一个表,其中在键"func"处存储了一个函数
返回值:将 a 和 b 传入操作函数调用后得到的结果(数字)
亲手试试
function applyOperation(a, b, operation)
-- 在这里编写代码
end
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Lua 在线编译器