8个类型: nil,string,number,function,thread,table,boolean,userdatapairs和ipairs的区别:(建议使用pairs) pairs可以返回nil,可以遍历表中所有的键 ipairs遇到nil则退出,只能返回数字0,只能遍历到表中第一个出现的不是整数的键命名规则: 首字母必须是下划线或者字母,名称由下划线,字母,数字组成; 区分大小写; 名称不能是关键字;逻辑运算符 and 两个表达式相与,表达式1 为真,返回表达式2,1为假,返回1 or 两个表达式相或,表达式1 为真,返回表达式1,1为假,返回表达式2 (就是这么不同寻常) 三元运算符等同于((a and b)or c)闭合函数: 含有非局部变量的函数,非局部变量是指相对于一个函数是局部变量,相对于另一个函数不是局部变量 6. loadfile:只编译不执行 dofile:既编译也执行,会重复执行 require:既编译也执行,只执行一次 7 协同程序的状态:挂起,执行,死亡,正常 8 getmetatable():参数为指定的表,返回值为表对应的元表 setmetatable():两个参数,第一个是自定义的普通表,第二个是指定的元表 9 __index:用于查询 __newindex:用于更新
__newindex的规则: a.如果__newindex是一个函数,则在给table不存在的字段赋值时,会调用这个函数。 b.如果__newindex是一个table,则在给table不存在的字段赋值时,会直接给__newindex的table赋值。 10 全局变量 -G 11 “. ”与“:”区别: “. ”需要显示的将参数列表中将调用的参数传递 “:”不需要显示的将参数列表中将调用的参数传递,系统自动隐式的传入对象本身
12.Lua面向对象思想 使用function,table的方式实现类 使用function创建类中的方法 使用table描述类的成员所拥有的属性 使用settable函数和__index元方法实现继承 lua中可以函数重写(覆盖)不能重载(会调用最新定义的方法) lua中参数按照顺序进行赋值,多余的参数被忽略,不足的参数用nil赋值
转载请注明原文地址: https://ju.6miu.com/read-1312194.html