
lua
俊哥兜里有糖
但行好事,莫问前程
展开
-
lua协程的使用(一)
由于协程所带来的便利,以及使用时产生的疑惑,我深入了解了一番这个概念。回头来看,目前网上能查到的关于协程的资料实在不多,而且多数都会造 成一些迷惑和误解(主要是下文提到的概念模糊问题)。于是我决定写个系列来详细介绍这个概念,一方面加深自己的理解,一方面培养点开放共享的精神,同时也 期待大牛的指正。 协程的定义 协程的概念最早由Melvin Conway在1963年提出并实现,用于简化COBOL转载 2018-01-11 12:06:05 · 655 阅读 · 0 评论 -
事件派发
Unity的模块通信与事件派发模块类型public Enum EModuleType : byte{ None = 0, Login = 1, ...}各模块的子类型public Enum EventType{ None = 0, Refresh = 1, ...}...原创 2018-03-27 11:36:11 · 413 阅读 · 0 评论 -
lua_pcall详解
用法lua_pcall(lua_State *L,int nargs,int nresults,int errfunc)nargs 参数个数nresults 返回值个数errFunc 错误处理函数,0表示无,表示错误处理函数在栈中的索引示例--test.luafunction test(x,y) return x + yendlua_loadfil...原创 2018-03-21 15:55:22 · 34015 阅读 · 0 评论 -
lua中单例的使用
--testlocal config = {}function config:new(o) o = o or {} setmetatable(o,{__index = self}) return oendfunction config:Instance() if self.instance == nil then self.instance = self:new...原创 2018-03-29 19:06:54 · 1715 阅读 · 0 评论 -
lua string 函数的一些理解
string库提供了字符串处理的通用函数。 例如字符串查找、子串、模式匹配等。 当在 Lua 中对字符串做索引时,第一个字符从 1 开始计算(而不是 C 里的 0 )。 索引可以是负数,它指从字符串末尾反向解析。 即,最后一个字符在 -1 位置处,等等。 字符串库中的所有函数都在表string 中。 它还将其设置为字符串元表的__index 域。 因此,你可以以面向对象的形式使用字符串函数。 例...原创 2018-01-10 17:24:19 · 1398 阅读 · 0 评论 -
lua与C交互函数
在lua中,lua堆栈就是一个struct,堆栈索引的方式是正数也可以是负数,区别是:正数索引1永远表示栈低,负数索引-1永远表示栈顶。 栈顶 4 ------------- -1 3 ------------- -2 2 ------------- -3 1 ------------- -4 栈底lua_getto...原创 2018-02-08 17:24:44 · 380 阅读 · 0 评论 -
lua 泛型for
文法for in do endvar-list 是一个或者多个以逗号分隔的变量名列表,exp-list是一个或多个以逗号分隔的表达式列表,通常情况下exp-list只有一个值:迭代工厂的调用for line in io.lines() do io.write(line,'\n')end我们称变量列表中第一个变量为控制变量,其值为nil使循环结束泛原创 2018-01-12 11:33:52 · 664 阅读 · 0 评论 -
Excel导出Lua文件
读取Excel文件源文件: .xls文件语言:C#插件:CSharpJExcel.Jxl 导出伪代码StringBuilder sb = new StringBuilder(); sb.Append("local _data = {}"); for (int i = validRowIdx; i < rows; i++) { //读取单元格内容 //数原创 2018-01-03 14:52:18 · 1138 阅读 · 0 评论 -
lua闭包
闭包:一个函数加上它可以正确访问的upvalue upvallue : 外部的局部变量 闭包是一个内部函数,它可以访问一个或者多个外部局部变量(upvalue) 每次闭包的成功调用后这些upvalue都保存他们的值一个典型的闭包接口包含两个函数: 一个是闭包自己;另一个是工厂(创建闭包的函数)示例 实现的这个迭代器返回元素的值而不是索引下标:function list原创 2018-01-11 18:17:07 · 190 阅读 · 0 评论 -
lua中实现继承
metatable什么是元表 元表像是一个“操作指南”,里面包含了一系列操作的解决方案,例如__index方法就是定义了这个表在索引失败的情况下该怎么办。__index元方法 很多人对此都有误解,这个误解是:如果A的元表是B,那么如果访问了一个A中不存在的成员,就会访问查找B中有没有这个成员。而这个理解是完全错误的,实际上,即使将A的元表设置为B,而且B中也确实有这个成员,返回结果仍然会是nil转载 2018-01-02 19:02:47 · 1353 阅读 · 0 评论 -
self的一些理解
self:定义方法的时候带上一个额外的参数,来表示方法的作用对象Account = {balance = 0}function Account.withdraw(v) Account.balance = Account.balance - vend 这个定义创建了一个新的函数,并保存在Account对象的withdraw域内,下面我们可以这样调用:Account.withdraw(原创 2018-01-02 16:59:04 · 383 阅读 · 0 评论 -
lua协程的使用(二)
上一篇中对协程的概念做出了解释和澄清。总的来说,完全协程才算得上是真正意义上的协程,其它如生成器等只是部分实现了协程概念的非完全协程,我们之后主要讨论完全协程。本篇介绍一些协程的实际应用。协程本质是一种控制抽象,它的价值在于可以简洁优雅地实现一些控制行为。在协程中,控制可以从当前执行上下文跳转到程序的其它位置,并且可以在之后的任意时刻恢复当前执行上下文,控制从跳出点处继续执行。这种行为与Con转载 2018-01-11 14:01:58 · 503 阅读 · 0 评论 -
Lua支持Int64和UInt64
基础知识c# 位运算符 << 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 示例 a = 60;(二进制 0011 1100) b = 13;(二进制 0000 1101) a << 2 将得到240,即为1111 0000 a|b 将得到...原创 2018-04-26 22:01:34 · 10722 阅读 · 0 评论