帮助:模块/变量

来自心百科,心灵的百科全书
< 模块
Lua与模块
Lua.jpg
基础
1.Hello world
2.替换模板入门
3.function的调用
4.HTML的渲染
进阶
1.数据类型
2.字符串(string)
3.变量(variable)
4.运算符(operator)
5.分支结构(if)
6.循环结构(for/while/iterator)
7.函数(function)
8.表(table)
9.数组(table)
10.模板参数(args)
11.跨模块调用(require)
12.MongoDB函数
使用VS Code维护代码
Lua的变量共有三种类型:全局变量、局部变量、表(table)中的索引。
  • 全局变量:在整个模块中都有效的变量
  • 局部变量:只在声明的语句块(函数、for等)中生效的变量
  • 表中索引:是需要根据table和索引名,来确定到一个变量

命名规范

Lua的变量名,可以使用字母(区分大小写)、下划线和数字组成变量名。

特殊限制:

  • 数字不能作为变量名开头
  • 下划线后面不能接一个或多个大写单词
  • 不能使用保留的关键字:andbreakdoelseelseifendfalsegotoforfunctionifinlocalnilnotorrepeatreturnthentrueuntilwhile

声明

Lua的变量可以不声明直接使用,但所有未经声明的变量均为全局变量,很容易产生不必要的错误,所以不推荐这样的使用方式。

除非您确定要使用全局变量,否则应该尽量把变量声明为局部变量,声明局部变量的方式:

local varname

赋值

赋值,可以改变一个变量的值,赋值时使用运算符=

所有没有赋值的变量,直接使用时,值均为nil

例如:

a = 'hello huiji'
b = 50 + 5

可以同时赋值多个变量,如下:

a, b = 'hello huiji', 50 + 5

Lua会先计算=右边的值,然后再进行赋值操作,因此可以使用同时赋值功能来交换2个变量的值:

a, b = b, a

当变量的个数和值的个数不一致时:

  • 变量的个数比较多的情况下,多出来的变量,会被赋值为nil
  • 值的个数比较多的情况下,多余的值会被忽略

同时赋值多个变量,主要用于函数返回值:

a, b = f() -- f()返回两个变量

声明的时候也可以进行赋值,如下:

local varname = '灰机'

还可以同时声明多个变量,并进行赋值,例如:

local varname, vardesc = '灰机', '一个中文「维基农场」'

表中索引

Lua中,使用table的表中的变量时,可以使用以下两种方式索引:

  • 使用方括号[ ]
t[i] -- 表t中的i
t[1] -- 表t中的第1个元素
t['1'] -- 表t中key的值为“1”的元素
t["1"] -- 同上,表t中key的值为“1”的元素
  • 使用点.
t.i  -- 仅限于索引值是一个字母开头的字符串(且不包括中文)