B站每日喝粥Lua学习笔记

变量声明

Lua里只要赋值一个变量等于声明一个变量

 

声明的变量默认为全局变量,能在其他文件中调用,加上local后变为局部变量,则只能在当前函数,代码块中调用。

 

没有被声明过变量的值均为nil,也视为一种类型,没有被赋值,没有被声明均视为nil(类似于其他语言中的NULL)

 

 Lua中同样可以多重赋值,声明没赋值同样为nil。

 

 number类型

Lua所有的数字类型都是number类型,即涵盖了所有float,int等所有数据类型,同时也支持科学计数法以及十六位进制法

string类型

Lua可以用双引号和单引号在赋值一个字符串,同时也支持转移字符,如/n,单双引号也能录入空格,但不能换行。

 用两个中括号则可以表示多行文本,则会录入包括空格换行同时,也/n等转义字符也不会转义。

 

 字符串的链接用..表示

 

 tostring可以将数字类型转换为字符类型,tonumber可以将字符类型转换为数字类型,当字符类型无法转换为数字类型时,其值为nil。

 

 #号可以获取字符串长度,转义字符算一个字符。

 

 函数

 Lua函数写法如下,两种等价,括号内为参数。函数的返回值默认为nil。

 函数使用示例

 函数同样可以用return进行返回值,也可以进行多重返回值,同时配合多重赋值语句

 

 table

 table是Lua里重要的数据结构,大小不受限,为关联形数组,可以存任意索引,及number,sring,table本身,函数等,但是不能存nil,不存在的元素为nil。

 table里可以用默认的数字下标,数字下标从1开始,而不是从零。table里也可以赋值,为table增加元素。也可以用#号获取table长度。

 

 

 

 还可以用自带的table接口来进行插入操作,可以在指定位置插入值,原来的元素则顺位往下移,没有指定位置则默认插入到最后

 

 同样也有移除操作,移除的同时也可以返回出来。

 

 table里也可以用字符串作为下标,调用的时候要给字符下标加上双引号。

 

 如果符合变量命名规范,则可以用.号表示。

 

 不符合还有下面表示方式

 

也可以直接对下标进行赋值声明。(但是应该不是直接加在table后面,这时#a输出table长度为1)

 

 全局表

Lua有一种特殊的table 全局表_G,所有的全局变量都在全局表_G中,都可以在_G中读取打印。

 table同样也是全局变量,可以在_G中打出来,insert是table里面一个函数,也可以在_G中打印。

 

 

 运算符号

 Lua与其他基本一致,但是不等于用~=来表示

在Lua中除了false和nil代表假,其他都为真,在c中,数字0也为假,但是Lua中,数字0为真

Lua中如果变量为值而不是true,会直接返回值

and中如果两边都为真则返回后面一个值。

 

 

 Lua中if判断语句如下

 

Lua中for循环如下,

 

 for循环后还可以加入步长,可以为负数,实现倒叙。lua中没有自增自减的操作。

 

 注意,for循环中i值修改无效,不能在执行语句中对i进行操作,如果对i进行操作则会强制转换成一个新的local形i,对循环体中的i无影响。但是for循环中可以进行break

 

 while循环

与其他语言相近,同样可以break

 

repeat循环

与while相似,写法不同。

 string类型

 跟c中字符串数字相似。char可以转移ascii码。

 

byte可以取出任意位置字符,同样下标从1开始而不是0

 

当然0x00不会结束字符串,直接成为0存入,而c中字符串0会让字符串结束。

猜你喜欢

转载自blog.csdn.net/qq_53211468/article/details/125127186