面经-Lua的闭包

本文最后更新于:2025年1月21日 凌晨

构建Lua解释器Part11:Upvalue - Manistein的文章 - 知乎

基本概念

1
2
3
4
5
6
7
8
9
10
11
12
function outer()
local x = 10 -- x是一个局部变量

local function inner()
print(x) -- x在这里就是一个upvalue
end

return inner
end

local fn = outer()
fn() -- 输出10
  1. x 是 outer 函数的局部变量,inner 函数引用了 x

  2. x 对于 inner 来说就是一个 upvalue

  3. Lua 会特殊处理这个 x,使其在 outer 函数结束后仍然存活


面经-Lua的闭包
https://rorschachandbat.github.io/找工作/面经-Lua的闭包/
作者
R
发布于
2024年12月25日
许可协议