学习 Lua 的必要性
因为工作中经常与 nginx 打交道,而 nginx 又有大量的模块是由 Lua 写的,所以有必要学习下 Lua 基础的语法知识。Lua 作为一门动态脚本语言,解释执行,和 JavaScript 有点相似。
语言特点
- 语句结束没有分号
- 跟 JavaScript 很像
- 默认定义的是全局变量,定义局部变量需要加 local 关键字
- 数组索引从1开始
- 没有 i++ 操作符号,只能 i = i + 1
注释
- 单行注释
- -- 注释内容
- 多行注释
- --[[
- 注释内容
- ]]--
内置数据类型
总共有6种内置数据类型, 其中包括nil, boolean, number, string, table, function
- nil
- 通常是没有赋值,直接使用才会是这个值, 比如说下面的代码直接打印 变量 name
- lua print(name)
- 在 ifelse 判断语句中,nil 被当成false 分支,但 nil ~= false, 在 Lua 语言当中,不等于使用 ~= 来表示, 而不是我们常见的 != 。
- boolean
- 有两种取值:true, false
- number
- 所有的数值类型都使用 number 来表示,不管是整数,还是浮点数,其实内部的存储方式是双精度类型。
- string
- 字符串可以用双引号,也可以用单引号包围起来,特殊字符需要转义
name = "dev4mobile"name = 'dev4mobile'nameWithAge = 'dev4mobile 25'
- 多行字符串
welcome = [[ hello world ]]
- table
- 其实就是其它语言里面的对象, 有两种表现方式,一种是数组,一种是字典(Map),
- 都是使用大括号括起来的。记住数组索引从1开始。
arr = { 1, "dev4mobile