在线运行lua的luatos

变量
- a是本地变量
- b是全局变量

nil
- 未赋值的变量c,其值是nil

批量赋值



16进制和科学计数法

字符串支持双引号和单引号

原始字符串
[[ ]]中的字符串保持原样

字符串拼接,使用两个点

字符串转数字,数字转字符串
- tostring
- tonumber

- 'abc'无法转换成数字,所以输出nil

字符串的长度
- 字符串前面加上#

函数
传统形式

赋值形式

函数传参

- 形参有a,b,c,只传了前两个形参,c没有传递,所以输出nil

函数返回值



table表
-
lua的table表,可以存放各种数据类型

-
超出table表索引的值输出为nil

1.直接通过索引赋值

- table的长度和字符串的长度类似,都是前面加上#

table插入
-
table表插入数据,insert实在最后面插入,这个和其他语言有些区别

-
第二个位置插入

移出


字符串下标
- 这个类似js中的对象,一些语言中的map

取值
方括号形式
- 使用方括号的形式,其索引可以不是标准类型的变量命名形式

- 这个table中的最后一个索引的名称就是不符合变量命名规范

点的形式
-
点的形式,那么这个索引就是必须符合变量命名规范的命名才可以

-
也可以通过索引直接赋值

-
未赋值的索引对应的值输出为nil

全局变量_G
-
所有你定义的变量,以及一些系统的内置函数都是放在这个变量里面,可以理解成面向对象语言中的object

-
自定义的变量a

-
table表的insert方法

算术运算符
- 需要注意的是lua的中不等于是~=,其他语言多使用!=

逻辑运算符
-
需要主语的是除了false和true可以表示真假之外,0和1并不能表示真假,所以0也是真,此外nil是假

-
0是真

逻辑运算模拟三目运算符

if判断
if then
else
end

if then
elseif then
else
end

for循环

步长

递减形式

循环变量无法修改
- 循环变量无法在循环体内进行修改
- 第三行程序就是理解你定义了一个i变量,而不是循环的那个变量i

break

while循环
- 注意的是lua没有自减运算符,所以n=n-1

字符串补充
-
存放十六进制的数

-
取出第二个位置的字符

-
可以存放0x00字符,因为这个在c语言中是结束符

lua5.3语法参考手册

浙公网安备 33010602011771号