随笔分类 -  lua

摘要:词法定界:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量,这种特征叫做词法定界 第一类值:lua当中函数是一个值,他可以存在变量中,可以作为函数参数,可以作为返回值 闭包:通过调用含有一个内部函数加上该外部函数持有的外部局部变量(upvalue)的外部函数(就是工厂)产生的一个实 阅读全文
posted @ 2018-03-24 10:23 oayx 阅读(551) 评论(0) 推荐(0) 编辑
摘要:1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,...2. string库中所有的function都不会直接操作字符串,而是返回一个结果string.byte(string [,pos]):返回第pos个字符的整数表示形式.如a为97.string.char(i1... 阅读全文
posted @ 2015-11-24 12:36 oayx 阅读(700) 评论(0) 推荐(0) 编辑
摘要:转自:http://cn.cocos2d-x.org/tutorial/show?id=1474一、Lua堆栈要理解Lua和C++交互,首先要理解Lua堆栈。简单来说,Lua和C/C++语言通信的主要方法是一个无处不在的虚拟栈。栈的特点是先进后出。在Lua中,Lua堆栈就是一个struct,堆栈索引... 阅读全文
posted @ 2015-11-23 16:56 oayx 阅读(819) 评论(0) 推荐(0) 编辑
摘要:原文出处:wuzhiwei 的博客欢迎分享原创到伯乐头条前言Lua是一门以其性能著称的脚本语言,被广泛应用在很多方面,尤其是游戏。像《魔兽世界》的插件,手机游戏《大掌门》《神曲》《迷失之地》等都是用Lua来写的逻辑。所以大部分时候我们不需要去考虑性能问题。Knuth有句名言:“过早优化是万恶之源”。... 阅读全文
posted @ 2015-11-23 16:47 oayx 阅读(585) 评论(0) 推荐(1) 编辑
摘要:当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是:forkey,valueinpairs(tbtest)doXXXendforkey,valueinipairs(tbtest)doXXXendfori=1,#(... 阅读全文
posted @ 2015-11-22 02:19 oayx 阅读(4136) 评论(0) 推荐(3) 编辑
摘要:BabeLua是一款基于VS2012/2013的Lua集成开发环境,具有Lua语法高亮,语法检查,自动补全,快速搜索,注入宿主程序内对Lua脚本进行调试,设置断点观察变量值,查看堆栈信息等功能。如何安装请参考《系列1—BabeLua入门》新建Lua工程在VS菜单上选择:【lua】【NewLuaPro... 阅读全文
posted @ 2015-11-17 14:31 oayx 阅读(3104) 评论(0) 推荐(0) 编辑
摘要:在之前的面试遇到考用lua实现类的题目。现在就补补这块知识点。我们都知道Lua中的table是一个对象。拥有状态,拥有self,拥有独立于创建者和创建地的生命周期。一个类就是一个创建对象的模具。Lua没有类的概念,但我们可以模拟类。我们首先看看元表和元方法。这两个东西和我们模拟类有关。Lua 本身是... 阅读全文
posted @ 2015-11-17 11:58 oayx 阅读(890) 评论(0) 推荐(0) 编辑
摘要:print("hello world")local function fact(n) if n == 0 then return 1 else return n * fact(n-1) endendlocal a = fact(5)print(a)print(b)--。Lua中有8个基本类型分别... 阅读全文
posted @ 2015-11-17 11:24 oayx 阅读(355) 评论(0) 推荐(0) 编辑
摘要:Lua中每个值都可具有元表。 元表是普通的Lua表,定义了原始值在某些特定操作下的行为。你可通过在值的原表中设置特定的字段来改变作用于该值的操作的某些行为特征。例如,当数字值作为加法的操作数时,Lua检查其元表中的"__add"字段是否有个函数。如果有,Lua调用它执行加法。我们称元表中的键为事件(... 阅读全文
posted @ 2015-11-17 11:16 oayx 阅读(1654) 评论(0) 推荐(0) 编辑
摘要:我从Decoda刚发布就一直关注着,这个工具可以注入到宿主程序内对lua脚本进行调试,还可以设置断点观察变量的值,功能非常强大。 下面我介绍一下使用方法。 首先找到一个使用了lua的程序,我这里用wireshark举例,这是个很好很强大的网络截包工具,wireshark内部使用了lua。没有wireshark的请下去google一下并下载安装,此为开源软件。 调试使用lua的宿主程序有两种启动方式,一种是从Decoda启动宿主程序,另一种是先启动宿主程序然后用decoda注入。 本篇文章将介绍如何从Decoda启动宿主程序 启动Decoda并点击Debug目录下的StartDebuging,弹 阅读全文
posted @ 2011-03-04 15:28 oayx 阅读(1036) 评论(0) 推荐(0) 编辑
摘要:1、http://www.unknownworlds.com/decoda,这个工具可以注入到宿主程序内对lua脚本进行调试。2、有2种方式对lua进行调试从Decoda启动宿主程序a、project菜单中的Settingsb、在commond中填入你要运行的宿主程序。点击okc、用它打开lua脚本设置断点。Decoda 中选择Start Debugging下面是简单的例子。====== main.cpp ==================#include <iostream>#include "luaDebug.h"using namespace std;i 阅读全文
posted @ 2011-03-04 15:27 oayx 阅读(7690) 评论(1) 推荐(0) 编辑
摘要:本文作者:sodme本文出处:http://blog.csdn.net/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.参考资源:http://www.lua.org/pil/ 一 个小小的脚本语言都能玩出这么多花样来,还真有点让我始料不及。你还别说,越写越觉得有意思了,现在干的活,很多的时候,象一个打字员或翻译员:把c++ 的代码翻译成lua的代码. 当然, 这只是一种比喻, 事实上, 在写的过程中, 针对于游戏的逻辑来说, 肯定会加上自己的理解以及判断, 然后作出适当的调整与取舍.lua是一种动态类型 阅读全文
posted @ 2011-02-05 22:20 oayx 阅读(547) 评论(0) 推荐(0) 编辑
摘要:本文作者:sodme本文出处:http://blog.csdn.net/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.参考资源:http://www.lua.org/pil/ 7. 如果有人问我, c里, 你觉得哪种基本数据类型最爽? 我会说, 那可能是union吧, 因为它可以让我一定程度的偷懒. 而如果有人问我, lua里你觉得哪种基本数据类型最爽?我会肯定的回答: table. lua的官方文档里是这样"吹嘘"table的:We use tables to represent ordinary a 阅读全文
posted @ 2011-02-05 22:20 oayx 阅读(415) 评论(0) 推荐(0) 编辑
摘要:本文作者:sodme本文出处:http://blog.csdn.net/sodme声明: 本文可以不经作者同意, 任意复制, 转载, 但任何对本文的引用都请保留文章开始前三行的作者, 出处以及声明信息. 谢谢.很多高深的人物都说过类似的话:"语言层面的东西, 都是表面的东西, 最核心的是设计模式, 是算法", 我完全赞同这句话, 但同时也完全赞同另一句话: "对于从事编码实践的我们, 还是应该踏实的多掌握一些编码层面的东西, 才更有利于理解核心的东西, 附带的, 也可以借以增加自信, 找回青春"...前面写过的孔乙己系列, 是以底层的眼光看阳春白雪的C++(当然,还没写完), 而在这个系列里, 阅读全文
posted @ 2011-02-05 22:19 oayx 阅读(408) 评论(0) 推荐(0) 编辑
摘要:下面的这些内容不包含在本文中:官方的Lua包和文档 (参看 http://www.lua.org/),;涉及到Lua使用但不是被Lua使用者普遍使用的东西 (参看 http://www.lua.org/uses.html), ;本wiki已经存在的内容(参看 LuaDirectory). 类库和与Lua绑定的资源LibrariesAndBindings 开发环境[LuaIDE] (5.0) - Windows平台Lua的整合开发环境(最新发布 2004-01-29).[wxLua] (5.0) -Lua and wxWidgets的混合体.有自己的带有调试器的IDE。这个IDE使用wxlua开 阅读全文
posted @ 2011-02-05 21:29 oayx 阅读(1075) 评论(0) 推荐(0) 编辑
摘要:-- Lua tables 分析 (1)-- bitbull.cn@gmail.com-- 转载请保持文章完整-- ver 1.0 @ 2007/07/09Lua的tables实现了关联数组,关联数组指不仅可以通过数字下标检索数据,还可以通过别的类型的值检索数据.Lua中除了nil以外的类型都可以作为tables的索引下标.另外tables没有固定的大小,你可以根据需要动态的调整他的大小.tables是Lua主要的也是唯一的数据结构,我们可以通过他实现传统数组, 符号表, 集合, 记录(pascal), 队列, 以及其他的数据结构.Lua的包也是使用tables来描述的,io.read意味着调 阅读全文
posted @ 2011-02-05 10:47 oayx 阅读(1131) 评论(0) 推荐(0) 编辑
摘要:Lua解释器对字符串的支持很有限。一个程序可以创建字符串并连接字符串,但不能截取子串,检查字符串的大小,检测字符串的内容。在Lua中操纵字符串的功能基本来自于string库。字符串库中的一些函数是非常简单的:string.len(s) 返回字符串s的长度;string.rep(s, n) 返回重复n次字符串s的串;你使用string.rep("a", 2^20)可以创建一个1M bytes的字符串(比如,为了测试需要);string.lower(s) 将s中的大写字母转换成小写(string.upper将小写转换成大写)。如果你想不关心大小写对一个数组进行排序的话,你可以这样:table.so 阅读全文
posted @ 2011-02-04 20:30 oayx 阅读(347) 评论(0) 推荐(0) 编辑
摘要:如何让EditPlus支持LUA这次主要介绍一下学习Lua之前的准备工作。(1) 下载Lua安装包,最新版本是lua-5.1.3. 它的体积很小,只有210Khttp://luaforge.net/frs/?group_id=377这是WINDOWS版本. 附带了编辑器,连环境变量都一次搞定了。(2)安装lua包(3)安装EditPlus编辑器:EditPlus 简单又好用, 我自己喜欢汉化版 http://www.crsky.com/soft/1578.html. 2.3以上版本可以使用一下注册码:Name:www.cnzz.ccCode:60A8E-21F10-5BZ83-ADW4E-F3 阅读全文
posted @ 2011-02-04 20:28 oayx 阅读(3740) 评论(0) 推荐(1) 编辑
摘要:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://cjbskysea.blogbus.com/logs/48140313.html基本函数库为Lua内置的函数库,不需要额外装载1、assert (v [, message])功能:相当于C的断言,参数: v:当表达式v为nil或false将触发错误,message:发生错误时返回的信息,默认为"assertion failed!"--------------------------------------------------------------------------------2、collectgarbag 阅读全文
posted @ 2011-02-02 18:00 oayx 阅读(556) 评论(0) 推荐(0) 编辑
摘要:《Programming in Lua中文版》 -- 8.Compilation, Execution, and Errors转自http://www.lifangjin.com/ (凉风集 李方进的个人BLOG)虽然我们把Lua当作解释型语言,但是Lua会首先把代码预编译成中间码然后再执行(很多解释型语言都是这么做的).在解释型语言中存在编译阶段听 起来不合适,然而,解释型语言的特征不在于他们是否被编译,而是编译器是语言运行时的一部分,所以,执行编译产生的中间码速度会更快.我们可以说函数 dofile的存在就是说明可以将Lua作为一种解释型语言被调用.前面我们介绍过dofile,把它当作Lu 阅读全文
posted @ 2011-02-02 15:39 oayx 阅读(1213) 评论(0) 推荐(0) 编辑