随笔分类 - Lua学习笔记
摘要:--父类 local ParentClass = { id = "085", name = "紫霞", --ParentClass.__index = ParentClass #自索引错误写法, __index赋值的是一个nil值, 也就是说ParentClass是一个nil值 } --[[ fun
阅读全文
摘要:一. 数组操作 1. ,冒泡排序 --[[ 冒泡排序算法原理: 1.依次比较相邻的两个数,将小数放在前面,大数放在后面。 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。 然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。 2.至此第一
阅读全文
摘要:一. 什么是模块 1.模块类似于一个封装库, 从 Lua5.1开始,Lua 加入了标准的模块管理机制, 可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。 二. 加载模块 1. 使用require(模块名)加载模块 --方式1: requir
阅读全文
摘要:一. 基本知识 1. table是Lua的一种数据结构用来帮助我们创建不同的数据类型,如:数组、字典等。 2. Lua的table数据类型,可以用任意类型来作数组的索引,但这个值不能是 nil。 3. Lua table 是不固定大小的,是一个动态表, 自动随心扩容 4. Lua也是通过table来
阅读全文
摘要:一. IO库分为两种模式 1. 简单模式: 设置默认的当前输入文件和一个当前输出文件,并且提供针对这些文件相关的操作,适用于简单的文件操作 2. 完整模式: 使用外部的文件句柄来实现,它以一种面对对象的形式,将所有的文件操作定义为文件句柄的方法,适用于高级文件操作,例如同时读取多个文件 二. 简单模
阅读全文
摘要:一. 柯里化函数 1. 柯里化函数的用途: 目前还不清楚他的用途, 目前仅做了解 2. 柯里化函数可以让add(1, 2) 的调用方式变成add(1)(2),或者add(1),add(2),并且,并且只有在最后调用()的时候才会返回计算结果,那么调用方式就变成了add(1), add(2), add
阅读全文
摘要:一. 时间函数 1. os.time([table]) --[=[ os.time([table]) 语法: os.time([table]) 功能: 获取当前系统日期的时间戳 参数: 参数table(可选): 获取指定日期的时间戳 {year = 2022, month = 1, day = 1,
阅读全文
摘要:互相调用函数执行原理: 这里介绍函数a调用函数b 在栈中的变化: 函数调用会在内存形成一个"调用记录",保存调用位置和内部变量等信息。 如果在函数 A 的内部调用函数 B,那么在 A 的调用记录上方,还会形成一个 B 的调用记录。等到 B 运行结束, 将结果返回到 A,B 的调用记录才会消失。 一.
阅读全文
摘要:一. 什么是闭包 1. 闭包由一个函数和该函数会访问到的非局部变量(upvalue)组成的, 其中非局部变量(upvalue)是指不是在局部作用范围内定义的一个变量,但同时又不是一个全局变量,主要应用在嵌套函数和匿名函数里,因此若一个闭包没有会访问的非局部变量,那么它就是通常说的函数。也就是说, 在
阅读全文
摘要:一. 泛型迭代器的执行过程 1. in 后面表达式应返回:迭代函数、状态常量、控制变量; 如果表达式返回的结果个数不足三个会自动用 nil 补足,超出三个的会被忽略。 2. 向迭代函数 传入两个参数 状态常量、控制变量 ,迭代函数的第一个返回值 如果为nil ,则停止循环 ; 否则第一个返回值 赋值
阅读全文
摘要:一. Lua函数介绍 1. lua中的函数本身是匿名的(或者说本身是一个地址), 将函数地址赋值给一个容器,如: 变量 表 函数返回值等,则这个容器就能够调用(使用)这个函数 2. 函数主要的两种用途 ①. 完成指定的任务,这种情况下函数作为调用语句使用 ②. 完成指定任务并返回"值",这种情况下函
阅读全文
摘要:一. 查找字符串 --[=[ string.find(str,匹配内容[,i[,是否关闭模式匹配]])查找字符串 语法: string.find(str,匹配内容[,i[,是否关闭模式匹配]]) 功能: 在str中查找匹配内容,并返回开头位置和结束位置 参数: 参数str(必选): 待查找的字符串
阅读全文
摘要:1. string.format(字符串格式 ,...): 第一个参数为字符串格式,后面的参数可以任意多个,用于填充第一个参数中的格式控制符,最后返回完整的格式化后的字符串。 2. 转义码中添加参数的顺序为:%[标志][最小宽度][.精度][类型长度]类型。 3. 使用 string.format(
阅读全文
摘要:一. 字符串介绍 1. Lua 语言中的字符串即可以表示单个字符,也可以表示一整本书籍。在Lua语言中,操作 100K 或者 1M 个字母组成的字符串的程序很常见 2. 当字符串内容中存在用来表示字符串的符号时,可以3种表示方式灵活应用解决 --使用单引号或双引号来表示字符串 local a = "
阅读全文
摘要:一 . boolean类型具有两个值:true和false 二. 在Lua条件表达式中哪些代表true和false 1. 在Lua中,boolean值并非用于条件测试的唯一方式,任何值都可以表示条件 2. Lua中,条件测试把false和nil视为假,将除了false和nil之外的所有其他值视为真(
阅读全文
摘要:一. number类型 1. Lua5.3 版本开始, Lua 语言为数值格式提供了两种选择 :integer( 整型 )和float(双精度浮点型 )[float不代表单精度类型 ] 2. 默认当成双精度浮点类型来运算的。也就是说number会底层当做double类型来处理,精度是16~17位 3
阅读全文
摘要:一. 自动强制类型转换 1. Lua语言在运行时提供了数值与字符串之间的自动转换 ① 针对字符串的所有算术操作都会尝试将字符串转换为数值,然后再进行计算 2. 字符串自动转数字 ① 针对字符串的所有算术操作都会尝试将字符串转换为数值float,然后再进行计算 ② 不仅仅在算术操作时进行这种强制类型转
阅读全文
摘要:一. 语句块 do ..... end 为什么要使用do end,它到底能够解决什么问题呢? do-end 解决的是变量作用域的问题,首先必须要明白local变量和全局变量拥有完全不同的词法作用域;我们应该尽量声明local变量,尽量减少一个变量的作用域范围,使其仅存在于自己需要的变量块内,而不要污
阅读全文
摘要:一. Lua语言中共8种数据类型 [1] nil 空。最简单,有且仅有值nil,表示一个无效值(在条件表达式中相当于false) [2] boolean 布尔。包含两个值:false和true [3] number 数字。double(双精度)类型(默认类型可以修改 luaconf.h 里的定义)
阅读全文
摘要:一. 什么是变量 无 二. Lua变量的命令规则 1. 命名规则:数字字母下划线构成 但是不能数字开头 2. 注意 :变量命名必须要包含一定涵义 比如我们要用变量存储一个年龄数值 比如我们用 x=18 别人看我们的源码 看到这里 她不明白 X这个变量为18代表什么意思 如果我们用age=18 那么他
阅读全文