在线运行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语言中是结束符