- 博客(8)
- 收藏
- 关注
原创 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 608
原创 lua闭包
闭包:一个函数加上它可以正确访问的upvalue upvallue : 外部的局部变量 闭包是一个内部函数,它可以访问一个或者多个外部局部变量(upvalue) 每次闭包的成功调用后这些upvalue都保存他们的值一个典型的闭包接口包含两个函数: 一个是闭包自己;另一个是工厂(创建闭包的函数)示例 实现的这个迭代器返回元素的值而不是索引下标:function list
2018-01-11 18:17:07 153
转载 lua协程的使用(二)
上一篇中对协程的概念做出了解释和澄清。总的来说,完全协程才算得上是真正意义上的协程,其它如生成器等只是部分实现了协程概念的非完全协程,我们之后主要讨论完全协程。本篇介绍一些协程的实际应用。协程本质是一种控制抽象,它的价值在于可以简洁优雅地实现一些控制行为。在协程中,控制可以从当前执行上下文跳转到程序的其它位置,并且可以在之后的任意时刻恢复当前执行上下文,控制从跳出点处继续执行。这种行为与Con
2018-01-11 14:01:58 400
转载 lua协程的使用(一)
由于协程所带来的便利,以及使用时产生的疑惑,我深入了解了一番这个概念。回头来看,目前网上能查到的关于协程的资料实在不多,而且多数都会造 成一些迷惑和误解(主要是下文提到的概念模糊问题)。于是我决定写个系列来详细介绍这个概念,一方面加深自己的理解,一方面培养点开放共享的精神,同时也 期待大牛的指正。 协程的定义 协程的概念最早由Melvin Conway在1963年提出并实现,用于简化COBOL
2018-01-11 12:06:05 607
原创 lua string 函数的一些理解
string库提供了字符串处理的通用函数。 例如字符串查找、子串、模式匹配等。 当在 Lua 中对字符串做索引时,第一个字符从 1 开始计算(而不是 C 里的 0 )。 索引可以是负数,它指从字符串末尾反向解析。 即,最后一个字符在 -1 位置处,等等。 字符串库中的所有函数都在表string 中。 它还将其设置为字符串元表的__index 域。 因此,你可以以面向对象的形式使用字符串函数。 例...
2018-01-10 17:24:19 1331
原创 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 1065
转载 lua中实现继承
metatable什么是元表 元表像是一个“操作指南”,里面包含了一系列操作的解决方案,例如__index方法就是定义了这个表在索引失败的情况下该怎么办。__index元方法 很多人对此都有误解,这个误解是:如果A的元表是B,那么如果访问了一个A中不存在的成员,就会访问查找B中有没有这个成员。而这个理解是完全错误的,实际上,即使将A的元表设置为B,而且B中也确实有这个成员,返回结果仍然会是nil
2018-01-02 19:02:47 1283
原创 self的一些理解
self:定义方法的时候带上一个额外的参数,来表示方法的作用对象Account = {balance = 0}function Account.withdraw(v) Account.balance = Account.balance - vend 这个定义创建了一个新的函数,并保存在Account对象的withdraw域内,下面我们可以这样调用:Account.withdraw(
2018-01-02 16:59:04 340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人