上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
3.5 变量
Lua语言里的变量有作用域的概念,分为局部变量和全局变量,名字区分大小写。
局部变量需要使用关键字“local”声明,作用域仅限本代码块(文件内或语句块内),没有关键字“local”声明的变量都是全局变量,而且不需要声明就可以直接使用:
x = 1 -- 使用一个全局变量x,赋值为1,全局可见 local str = 'matrix' -- 使用一个局部变量str,仅此文件内可见 do -- 开始一个代码块 local pi = 3.14 -- 局部变量pi,仅在此代码块内可见 end -- 代码块结束 print(type(pi)) -- 局部变量pi消失,访问的是全局变量pi
变量如果没有显式赋值,那么它的值就是nil,所以代码的最后一行会输出“nil”。
在Lua里应当尽量少使用全局变量,多使用局部变量。局部变量不仅很好地控制了变量的作用域,避免全局名字冲突,而且因为“局部化”,解释器查找的速度也更快。
一个比较常用的全局变量是:“_”(下画线,也是合法的变量名),通常当作“占位符”,在不想专门起名来保存某些值时就可以使用“_”来暂存并忽略。
Lua语言里没有“常量”,实践中我们通常用全大写名字的变量来表示常量,例如:
local MAX_COUNT = 1000 -- 全大写的变量,提醒开发者应该当作常量来使用