gpt4 book ai didi

scope - Lua - 函数中的局部变量作用域

转载 作者:行者123 更新时间:2023-12-04 17:45:18 24 4
gpt4 key购买 nike

我有以下功能

function test()

local function test2()
print(a)
end
local a = 1
test2()
end

test()

这打印出 nil

下面的脚本
local a = 1
function test()

local function test2()
print(a)
end

test2()
end

test()

打印出来 1。

我不明白。我认为声明一个局部变量使它在整个块中都有效。既然变量 'a' 是在 test() 函数作用域中声明的,而 test2() 函数是在同一个作用域中声明的,那么为什么 test2() 不能访问 test() 局部变量呢?

最佳答案

test2 has 可以访问已经声明的变量。订单很重要。所以,声明 a之前 test2 :

function test()

local a; -- same scope, declared first

local function test2()
print(a);
end

a = 1;

test2(); -- prints 1

end

test();

关于scope - Lua - 函数中的局部变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36870057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com