一、lua中的作用域 在Lua语言中声明的变量默认是全局变量,声明局部变量需要使用local关键字,和其他语言相比这有点特殊。 -- 全局变量 a = 10 function func() b = 100 -- 仍然是全局变量 local c = 20 -- func的局部变量 end func() print(a + b) -- 输出 110 print(c) -- 输出 nil 1. 2. ...
在Lua中,local关键字用于声明局部变量。局部变量只能在其所在的代码块(比如函数或者循环)内部访问,超出该范围就无法使用。相反,全局变量可以被整个程序访问。 2.2 local变量的作用域 局部变量的作用域仅限于其声明所在的代码块。一旦执行离开了该代码块,局部变量就会失效并被销毁。这意味着它们不会占用过多内存空间,...
-- local 表示局部变量,作用域到 end 为止,不写 local 表示全局变量 local a print(type(a)) --结果为 nil,lua 中用 nil 表示空 type(a) == nil --结果为 false type(a) == "nil" --结果为 true --字符串操作 len = "www.run" .. "oob.com" print(#len) --结果为14 --定义表(类似PH...
【Lua】local local用于限制变量和函数的作用域。 修饰变量 此变量只在此chunk(chunk知识)中有效。 例如:命令行中,一行就是一个chunk 一个if语句是一个chunk 修饰function 此函数作用域为此文件中,此函数定义之后(隐式声明)。引用此local function时,必须在此local function之后。 1functionrecv_cmd()2cmd_test(...
在函数内部使用"local"关键字声明局部变量,以避免变量冲突和意外的副作用。 注意函数参数的作用域,函数参数的作用范围仅限于函数内部。 避免滥用全局变量,尽量将数据封装在函数内部,使用函数的返回值来共合理使用块,将相关代码组织在块内,避免变量污染和命名冲突。
local a = "hello world" function test() print(a) -- 向上级域中搜索变量a end 这种沿着函数层级逐步向上搜索变量的过程,可以称为捕获,而被捕获的变量,在Lua中被称为上值,也就是Upvalue,这个名称倒是没有什么特殊的,它是一个历史名词。最初的设计者是这么叫的就这么叫了。 2.2 Lua函数和函数变量的关系...
Lua 中的局部变量要用 local 关键字来显式定义,不使用 local 显式定义的变量就是全局变量: g_var = 1 -- 全局变量 local l_var = 2 -- 局部变量 1)局部变量作用域 局部变量的生命周期是有限的,它的作用域仅限于声明它的块(block)。 一个块是一个控制结构的执行体、或者是一个函数的执行体再或者是...
在Lua中,要声明全局变量很简单,那就是定义变量的时候,前面不要加上 local。这个神秘的全局环境,其实本质上也是一个table,它把我们创建的全局变量都保存到一个table里了。而这个table的名字是:_G 本地变量定义在一个函数体中, 那么作用域就在函数中.
1.用local语句来创建局部变量,局部变量的作用域仅限于声明它们的那个块: 局部变量 2.显式地界定一个块可用do-end关键字,用于严格控制某些局部变量: do-end 块 3.“尽可能地使用局部变量”是一种良好的编程风格。局部变量可以避免将一些无用的名称引入全局环境,避免弄坏了全局环境。并且访问局部变量比访问全局变量...