lua
文章平均质量分 65
Reason and calmness
Reason and calmness
展开
-
Lua系统学习16-协同程序Coroutine
协同程序Coroutine协同程序就是指在一个线程中的同步执行,它是在某个线程下的,由一个线程发起调用,然后挂起。在一个线程中同一时刻只能运行一个协同程序。关于协同程序 深入了解与实现 可以看我的一个视频 协同程序实现精讲在lua中 我们使用create创建一个新的协同程序,传入参数是一个函数, create会返回一个thread类型的值。lua中的协同程序 分别 由4中状态 1.挂起 2.运行 3.死亡 4正常。当创建一个协同程序时候它处于挂起状态,我们可以通过函数status来检查协同程序的状原创 2021-12-10 18:07:36 · 2531 阅读 · 0 评论 -
lua系统学习15-捕获和异常
Package.loadlib参数:动态库的完整路径和一个函数名称。loadlib函数加载指定的库,并没有调用库中的任何函数,它会将一个c函数作为Lua函数返回。在Unity中使用Lua 这个方法很常用通常使用require来加载c程序块 ,这个函数会搜索指定的库,然后用loadlib来加载库,并返回初始化函数。这个初始化函数应将库中提供的函数注册到lua中,就好像一段lua代码定义了其他的函数一样。处理错误if not n then error(“message”) end当n为假的时候 抛原创 2021-11-25 17:57:26 · 1160 阅读 · 0 评论 -
lua系统学习14-动态加载与编译
编译loadstringloadingstring与loadfile类似 不同之处在于它是从一个字符串中读取代码,而非从文件读取。f=loadstring(“i=i+1”)—此时loadstring返回的是一个函数。这就是解释性语言的好处,直接在编译之后动态的去加载代码。假设我们使用loadfile读取文件,文件若是为空调用的时候将会导致异常报错。我们可以使用assert 更清楚地显示错误消息。当发生错误的时候 assert用来引发一个错误。f=assert(loadstring(“io_st原创 2021-11-24 18:08:28 · 456 阅读 · 0 评论 -
lua系统学习13-自定义创建一个迭代器
使用Closure特性自己创建迭代器function IteratorDIY(t1) function iteratorTableValue(t) local i=0 return function () i=i+1; return t[i] end end for i in iteratorTableValue(t1) do print(i) endendIteratorDIY({0,1,2,3,4,5,6,'\\0'});原创 2021-11-24 17:16:06 · 580 阅读 · 0 评论 -
lua系统学习12-深入函数
Closure 闭合函数table的排序方法就是用到了这种函数,匿名函数。示例names={"Miracle","Jack","xiaosha"}grades={Miracle=6,Jack=2,xiaosha=3}for i,v in ipairs(names) do print(i,v)endt=table.sort(names,function(name1,name2) return grades[name1]<grades[name2] end)fo.原创 2021-11-23 10:50:05 · 404 阅读 · 0 评论 -
lua系统学习11-函数
return函数与块在lua中如果在一个块内return之后出现了语句,编译器就认为他是错误代码。如:错误示例:function returnFunc() return 1 print("2")endprint(returnFunc())C:\Users\Admin\Downloads\luaforwindows-5.1.5-52\files\lua5.1.exe: C:/File/Lua/Return.lua:8: 'end' expected (to close 'fun原创 2021-11-17 19:27:27 · 788 阅读 · 0 评论 -
lua系统学习10-迭代器
迭代器表迭代器数组迭代器io文件行迭代器字符串迭代器1.表迭代器function iteratorpairsStruct(t) ---用来读取table表的 for i, v in pairs(t) do print("i是什么:" .. i) print("v是什么:" .. v) endendlocal t={["x"]="x2",["y"]="y2",["z"]="z2",2}iteratorpairsStruct(t).原创 2021-11-13 17:57:47 · 567 阅读 · 0 评论 -
lua系统学习09-控制结构
控制结构IF结构function nestIF() booleanCondition=1; if booleanCondition==1 then print("条件为True") else print("条件为false") endendIF~ElseIF嵌套---nest Ifelse age=tonumber(io.read()) if age>60 then print("老年人")原创 2021-11-13 16:56:01 · 412 阅读 · 0 评论 -
lua系统学习08-Chunk与局部变量
关于上篇多重赋值,还发现一个特性也算是函数的一个特性函数的返回值支持返回多个。可以使用多重赋值被多个变量接收。如:function func() return 1,2enda,b=func()print(a)print(b)debug12这样就不需要手动创建一个集合去返回了。非常便捷就可以为指定变量赋予指定的值局部在lua中也有语句块Chunk的概念,有块的概念就有局部的概念,在lua局部变量使用local语句来创建。测试在Chunk脚本中加载multiplyA原创 2021-11-12 23:40:02 · 541 阅读 · 0 评论 -
lua系统学习07-多重赋值
语句赋值Lua支持多重赋值一般人理解多重赋值都按照这种写法。function multAssignment() a,b=1 print(a) print(b)endmultAssignment()但是输出的结果表明在lua中这种写法是错误的。1nil我不知道为什么我第一印象里想到多重赋值是这样的,可能貌似是py的写法,好久没写py了在c#里也可以这样写,但是我记得C#中这样写它只会给最后一个变量赋值。具体是不是这样大家去试试。在lua中多重赋值正确写法f原创 2021-11-12 19:30:00 · 632 阅读 · 0 评论 -
lua系统学习06-Table构造函数
最简单的构造器是“{}”,用来创建一个空表。可以直接初始化数组:可以使用表构造一个链表:list = nilfor line in io.lines() do if line=="0" or line=="false" then break; end list = {nextVar = list, valueVar = line}endl = listwhile l do print(l.valueVar) l = l.nextVare原创 2021-11-12 18:22:19 · 645 阅读 · 0 评论 -
lua系统学习05-表达式
函数:函数可以存储在变量中,可以作为函数的参数 可以作为返回值。可以重新定义函数增加新的功能 ///这句话暂时没理解 是指动态时期重新定义?还可以避免运行不可靠代码创建安全运行环境而隐藏函数lua的所有标准库都是c实现的。所以可以调用lua或c实现的函数。UserData自定义类型userdata可以将c数据置入在lua变量中。userdata 用来描述应用程序或者使用 C 实现的库创建的新类型。例如:用标准 I/O 库来描述文件。表达式常量 、变量、点操作符、一元运算符、二元运算符、原创 2021-11-11 16:54:22 · 616 阅读 · 0 评论 -
lua系统学习04-table表
Table可以通过整数、字符串以及其他类型的值 除了nil 来作为索引值。table类似与c#中的list 可以动态地添加任意数量的元素到一个table中.table 可以用来表示数组 符号表、集合、记录、队列等数据结构哦。也可以表示模块 包、对象如io.read io为模块 read是函数。在lua中来看的话,read是作为io的key 来索引io的。io为table read是key。------ Generated by EmmyLua(https://github.com/EmmyL.原创 2021-11-10 23:43:18 · 375 阅读 · 0 评论 -
Lua系统学习01-DOFile加载函数
一。加载外部函数dofile加载外部函数并执行代码示例:------ Generated by EmmyLua(https://github.com/EmmyLua)--- Created by Admin.--- DateTime: 2021/11/8 13:49---print("hello world")dofile("C:\\File\\Lua\\OutSideLua.lua")print(twice(2))外部函数 outSideLuaprint("hello worl.原创 2021-11-09 22:43:30 · 674 阅读 · 0 评论