类型和值
1、nil (空)
未被赋值的变量默认值都为nil,将变量赋值nil等同删除变量
2、boolean (布尔)
false和nil都为“假”
0和空字符串""都为“真”
3、number (数字)
表示实数
4、string (字符串)
用一对单引号('')或者双引号("")界定
a='hello world' b="hello world"
用[[ ]]界定 [[ <html> </html]]
lua中,字符串是不可变的值
a = "hello " b = a.."world" print(a) --->"hello " print(b) --->"hello world" 不能执行 a = a.."world"
# 长度操作符
a='hello world' #a ---> 11
5、table (表)
可以表示:普通数组,符号表,集合,记录,队列等其他数据结构
lua也是通过table来表示模块(module),包(packet)和对象(object)
io.read() 含义是“io模块中的read函数”,对于lua,表示“使用使用字符串"read"作为key(键)来索引table io”
构造表达式:{}
语法糖 a["x"]等同于a.x
# 返回一个数组或线性表的最后一个索引值;如果table中间含有nil时,使用table.maxn返回最大正索引
注意:a["x"]和a[x]的区别:前者表示以字符串"x"来索引table,后者表示以变量x的值来索引table
a = {} x = "y" a[x] = 10 print(a[x]) ---->10 print(a["y"]) ---->10 print(a.x) ---->nil