由C++速通Lua
一.变量声明1.与C不同Lua的变量声明不需要声明类型我们创建了一个变量就相当于声明了它如a10就相当于声明了变量a。2.同时Lua中声明的变量默认都是全局变量如果想要声明局部变量需要在声明前加上local关键字3.在Lua中没有被声明的变量都是nil其类似于NULL比如说我们的程序中没有声明c我们print(c)那么得到的值就是nil。4.Lua中允许多重赋值我们可以a,b,c1,2,3这样赋值Lua一句代码的后面不用加分号。二.数值类型与运算符1.Lua没有intcharfloat等类型都统称为number类型。2.Lua中支持常见的运算符但注意Lua中的^是乘方同时Lua不支持--等复合运算符同时Lua中的不等于运算符是~这与大多数语言不同。3.Lua中也存在string字符串类型支持单引号与双引号。4.如果我们想要存储一个多行的字符串可以使用[[abcd]]同时这里面的字符串不会被做任何转化即使存在转义字符。5.Lua中字符串的连接符号是..不是。6.Lua中的字符串类型与数值类型也可以相互转化tostring与tonumber如果转化失败则返回nil。7.在Lua中我们可以在字符串的前面加上#来获取其长度。8.在Lua中也存在bool类型true与false需要注意的是Lua中0表示真在Lua中除了false与nil其他的值都表示真。9.Lua中也存在与或非分别为andornot需要注意的是Lua中and与or的返回值都是求值的结果只有not返回值是bool值类型。三.函数1.Lua中的函数模式function function_name( ... ) -- body end --也可以这么写 function_name function() --body end2.Lua中的注释是--。3.Lua中的函数无需显示的声明返回值函数的默认返回值是nil我们也可以使用return显示的返回同时Lua允许同时返回多个值如return a,b四.数组1.Lua中的数组为tableLua中的table存在两种形式数字做下标的与字符串做下标的数字做下标的类似于的数组字符串做下标的类似于map映射表。2.不同的是Lua中的table没有存储类型限制我们可以在一个table中即存数字又存字符串。3.需要注意的是在Lua中数字下标的数组其提取元素依赖下标而其下标的起始位置是1,这与大多数语言不同。4.对于字符串做下标的数组类似于map我们在声明时也需要即声明其键也需要声明其值然后通过对应的键做下标来访问对应的值如声明a{a10}然后我们通过a[a]来访问5.Lua中的数组添加元素可以直接对未声明的数组下标赋值这样就可以直接添加元素如我们声明了一个4个元素的数组我们可以直接a[5]10来添加第五个元素我们也可以在未声明第五个元素的情况下直接声明第六个元素那么未声明的第五个值为nil更进一步Lua中不存在数组越界的说法数组中未声明的元素都默认为nil。6.Lua中数组也存在insert与remove方法。7.在Lua中所以的全局变量都在_G这个table中_G实际上是一个字符串做下标的tableLua中一个table的类型也是table。五.分支与循环语句1.Lua中的分支语句if的模式if condition then -- body else if condition then -- body else -- body end2.Lua中for循环形式for i1,10 do --初始值结束值 print(i) end --这个for循环也可以有步长可以为负 --例如这里通过步长反向遍历 for i10,1 -1 do print(i) end在Lua的for循环在循环变量i是不能更改的强行更改只会创建一个新的i同时存在break。3.Lua中的while循环while n1 --body end。