2.5 lua 变量
全局变量
创建一个全局变量
全局变量不需要声明,给一个变量赋值即创建了一个全局变量,访问一个没有初始化的变量(默认是全局变量,即,lua的变量默认是全局变量,特别注意)也不会出错,会返回nil
。
1 | print(var_a) -- nil |
在命令模式中执行如下:
1 | Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio |
删除一个全局变量
删除一个变量很简单,直接将改变量赋值为nil
;如下面的例子:b是全局变量,当赋值为nil
之后,再调用print
就会返回nil
。
1 | Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio |
总之,可以这么理解:当一个变量被赋值为nil
,这个变量就变得像从来没出现过一样,换句话说,只有当一个变量的值不是nil
这个变量才是存在的。
局部变量
使用local
关键字来声明一个局部变量,和其他语言一样,局部变量只在被声明的那个代码块中有效。代码块包括:
- 控制结构
- 函数体
- chunk(变量被声明的那个文件或者文本串
注意:命令行模式中每一行就是一个chunk,也就是说,上一行的局部变量下一行就不可见了。
1 | Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio |
使用do ... end
使用do ... end
可以给一个block一个明确的边界。
1 | Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio |