lua
kgduu
这个作者很懒,什么都没留下…
展开
-
lua学习笔记之协程
1、基础所有协程相关的在表coroutine中,创建通过create来创建,参数为函数,返回值类型为thread.协程状态有:suspended, running, normal, dead。通过coroutine.status获取协程状态。create创建的协程初始状态为suspened,通过coroutine.resume来启动执行,协程状态变为running暂停协程使用coroutine.yield...原创 2022-02-19 13:35:36 · 535 阅读 · 0 评论 -
lua学习笔记之垃圾收集
1、弱表弱表如何声明呢?通过元表字段__mode来声明,其值必须是字符串,"k"表示关键字是弱的,"v"表示值是弱的,"kv"表示键和值都是弱的。原创 2022-02-18 23:13:00 · 343 阅读 · 0 评论 -
lua学习笔记之环境
输出所有的环境变量for n in pairs(_G) do print(n)end输出为:xpcalldebugrequiretypetonumbergetmetatableioosprintstring_Gloadcollectgarbagerawsetrawlennextwarn_VERSIONargutf8setmetatabletostringrawgettablepcallpackagecoroutineloadf原创 2022-02-18 12:01:34 · 485 阅读 · 0 评论 -
lua学习笔记之面向对象编程
1、类基于原型。lua使用继承的思想即__index元方法来实现原型。原创 2022-02-15 21:48:48 · 383 阅读 · 0 评论 -
lua学习笔记之元表和元方法
元表允许当遇到未知操作时,改变值的行为。例如,使用元表,可以定义表a与表b的关系运算a+b。当lua尝试两个表相加时,会检查是否其中一个有元表并且元表是否有__add字段。元表在面向对象的术语中是一种受限的类。正如类一样,元表定义实例行为。但是元表有比类更多的限制。仅仅给预定义的操作给定行为,并且元表没有继承。lua中的每个值可以有元表。表和用户数据有个人的元表。其它类型的值共享单个元表。lua总是创建没有元表的新表。...原创 2022-02-07 22:38:13 · 458 阅读 · 0 评论 -
lua学习笔试之迭代器和通用for
1、迭代器和闭包迭代器是一个允许在集合元素的迭代。lua中用函数来表示迭代。迭代器需要记录一些状态。闭包提供了一些机制来记录状态。原创 2022-01-23 19:55:42 · 231 阅读 · 0 评论 -
lua学习笔记之模块、包
模块需要通过函数require来加载,创建返回表。模块导出的所有如函数、常量作为一个工作空间。1、require函数require首先检查表package.loaded是否模块已经加载,如果已经加载,则返回对应的值。如果模块没有加载,require搜索模块名字对应的lua文件,搜索通过package.path来引导,如果找到文件,则使用loadfile加载,返回的结果是称为加载器的函数。如果没有找到模块名对应的lua文件,则搜索对应名字的c库文件,此时搜索是通过package.cpath变量来引导,原创 2022-01-16 19:34:44 · 973 阅读 · 0 评论 -
lua学习笔记之编译、运行及错误
1、编译dofile和loadfile加载文件。loadfile仅仅编译代码块,并且返回编译后的代码块作为函数。loadfile在出错时返回nil和错误信息,并且可以加载一次,调用结果多次。load与loadfile相似,从函数或者字符串读取代码块,不是从文件f = load("i = i + 1")i = 0f(); print(i)f(); print(i)输出:12...原创 2022-01-15 21:47:43 · 417 阅读 · 0 评论 -
lua学习笔记之数据文件及序列化
1、数据文件原创 2022-01-12 22:54:36 · 382 阅读 · 0 评论 -
lua学习笔记之数据结构
使用表来实现数组,记录,列表,队列,集合原创 2022-01-11 21:42:32 · 280 阅读 · 0 评论 -
lua学习笔记之位及字节
1、位操作& 位与| 位或~ 位取反(异或)>> 逻辑右移<< 左移原创 2022-01-10 21:52:59 · 2632 阅读 · 0 评论 -
lua学习笔记之日期时间
有两种表现形式,一种是通过数字,另外一种方式是通过日期表:year,month,day,hour,min,sec.wday,yday,isdst1、函数1.1 os.timeprint(os.time())local date = os.time()local day2year = 365.242local sec2hour = 3600local sec2day = sec2hour * 24local sec2year = sec2day * day2yearprint(da原创 2022-01-09 14:21:29 · 1014 阅读 · 0 评论 -
lua学习笔记之模式查找
1、string.find在目标字符串中搜索模式,返回两个值,匹配位置的开始和结束位置。如果没有匹配,返回nil当匹配时,使用string.sub带上string.find返回的参数返回 的是匹配的字符串。string.find有另外两个可选参数,第三个表示搜索的开始位置,第四个表示是否是纯文本搜索。print(string.find("a [word]", "["))会报错print(string.find("a [word]", "[", 1, true))输出原创 2022-01-07 22:50:48 · 997 阅读 · 0 评论 -
lua学习笔记之闭包
Lua中的函数是具有适当词法范围的一级值。lua作为一级值意味着函数与数字和字符串一样具有值,可以将函数存储在变量或者表中,将函数作为参数传递给其它函数,也可以作为结果返回函数。lua具有词法范围意味着函数可以访问闭包函数的变量。...原创 2022-01-03 20:27:52 · 216 阅读 · 0 评论 -
lua学习笔记之语句
1、本地变量及语句块默认情况下,lua中的变量是全局的。本地变量声明使用local.语句块使用do-end原创 2021-12-26 20:34:34 · 179 阅读 · 0 评论 -
lua学习笔记之io
1、简单模式简单模型假设有一个当前输入流和一个当前输出流,其I/O操作在这些流上运行。库初始化当前输入流为stdin,输出流为stdout原创 2021-12-26 18:33:32 · 824 阅读 · 0 评论 -
lua学习笔记之函数
函数只有一个参数,并且参数类型是字符串字面量或者表对象构造器,则括号是可选的原创 2021-12-26 16:53:23 · 534 阅读 · 0 评论 -
lua学习笔记之表
1、表索引存储的是不同类型索引与值之间的对应关系。lua支持点语法a.name和语法糖a["name"]。数字a[0]与字符串a["0"]是表示不同的。2、表构造创建空表使用{}。构造数组形式使用构造字典形式使用...原创 2021-12-26 16:15:25 · 674 阅读 · 0 评论 -
lua学习笔记之字符串
1、概述字符串是字节序列。lua是不头疼字节如何编码文本的。它的字符串可以包含包含任何数字代码的字节,包括嵌入的零。可以存储任意二进制数据,也可以存储unicode(UTF-8,UTF-16等)字符串。但是推荐使用utf-8。字符串不可变,不能修改字符串中的字符。...原创 2021-12-26 11:28:04 · 831 阅读 · 0 评论 -
Lua学习笔记之数字
5.2版本及之后,使用浮点数表示数字。从5.3版本开始,有两种表现形式:64位整数(simplyintegers),双精度点数(simply floats)。有小数点或者指数的视为浮点数,否则视为整数使用type函数判断数字是总是返回number。需要使用math.type函数来判断数字是整数还是浮点数...原创 2021-12-25 21:29:43 · 1005 阅读 · 0 评论 -
lua学习笔记之开始
1、安装下载window下的lua ,地址Lua Binaries Downloadidea安装EmmyLua插件1.1输出print("hello, world")输出hello,world1.2函数function fact(n) if n == 0 then return 1 else return n * fact(n - 1) endendprint("enter a number:");a = io....原创 2021-12-03 07:42:19 · 225 阅读 · 0 评论