[LUA学习笔记04]Lua语法--数据类型

    技术2022-05-11  89

    1. 注释

    两个减号引导一行注释 -- this is comment-- 这是注释

    2. 变量

    无类型变量 变量名区分大小写 建议不要使用下划线后跟大写(如_LUAOCCUPIED)命名变量,此为LUA内部变量 不需要显式声明变量 未初始化的变量值为nil(注:nil不能参加数学运算) 允许多重赋值 例如 a,b,c = 1,2,3; 等同于 a=1;b=2;c=3; 若右值缺少:没有对应右值的左值被置为nil 若左值缺少:多余的右值被忽略

    3. 数据类型

    numeric 包括整型和浮点型 string 字符串 function 函数引用,类似C语言的函数指针 table 可以充当相关数组、链表、类 userdata 可以在LUA中保存C语言的 void* 类型 nil 空(NULL的增强版) 函数type()可以返回变量的类型名称。

    table类型

    初始化 IntArray = {10, 50, 100} StringArray = {"hello", "world", "!"} 初始化索引从1开始,上例中IntArray 1=10; StringArray 1="hello"; 但是仍然可以手动赋值: IntArray 0=-100; 索引键 table的索引键只有在第一次被访问时才创建。 例如 IntArray[0] = 1; IntArray[5000] = 5000; 只有0和5000这两个键被创建。 表成员可以是异类数据 table每个索引对应的值可以是任何类型,甚至是另一个table的引用,例如 MyTable[0] = 100; MyTable[1] = 3.14; MyTable[2] = "string text"; MyTable[3] = {"a","b",1,2,3}; -- 这就相当于二维数组 -- MyTable[3][1]就是"a" 表存储的是引用 table的值只是对于一个数据的引用 a = {}; b = {}; a[10] = {1,2,3}; b[1] = a; b[1][10][2]= "changed"; -- b[1][10][2] 相当于 a[10][2] -- 所以此时a[10][2] = "changed" 用作关联数组 LUA中可以用字符串作为索引键,从而形成 KEY - VALUE 对 Person = {}; Person["name"] = "My Name"; Person["age"] = 24; print( Person["name"]); print( Person.age); --也可以通过点操作符访问成员 Table["key"] 与 Table.key 总是等价。 

    最新回复(0)