这里主要写Lua的字符串TString相关结构和算法。文章没有贴Lua源码,只画出了结构图,和算法的伪代码。这样阅读起来更加直观。一、TString的概述 1、lua字符串是常量,例s = s .. 1 创建了一个新的字符串赋值给s,并不是改变了s字符串的数据。 2、lua字符串分为长字符串和短字符串。 长字符串和短字符串区别 (1)存储方式: 短字符串:全局存储一份 长字符串:多份 (
转载 2024-03-22 11:02:25
210阅读
Lua table(表) table 是 Lua 的一种数据结构用来帮助我们创建不同的数据类型,如:数字、字典等。 Lua table 使用关联型数组,你可以用任意类型的值来作数组的索引,但这个值不能是 nil。 Lua table 是不固定大小的,你可以根据自己需要进行扩容。 Lua也是通过table来解决模块(module)、包(package)和对象(Object)的。 例如string.
转载 2024-05-22 18:58:24
132阅读
1. 环境 tolua U3D下。2. 原理:lua中提供了metatable 元表的概念,这个相当于一个字典一样,使用Key-value的访问方式。其中有一些lua实现的表操作可以用于支持面向对象的概念。表的__index 方法:当访问一个表不存在的域时,会触发lua解释器去查找__index metamethod,如果不存在,返回结果为nil,如果存在则由__index metamethod
1.什么是prototype?function F() {} f1 = new F(); f2 = new F();以上的代码,F()是一个构造函数,f1和f2是由这个构造函数产生的对象。prototype是构造函数的一个属性,它的值就是由这个构造函数构造出来的对象的原型对象。(换句话来说,prototype既是构造函数的属性,也是由这个构造函数构造出来的对象的原型对象)原型对象的属性和方法都会被
// A: // no default ctor// with copy ctorclass A{public: explicit A(int) {}};//B:// no default ctor// no ctor from int// with copy ctorclass B: public
c++
转载 2011-02-17 14:12:00
36阅读
2评论
onEnter: 场景进入, 包括pop出来场景。ctor: 构造函数,new的时候调用, pos出场景不调用。onExit: 退出场景,包括push进入的时候。
原创 2016-01-12 13:19:58
47阅读
.ctor,.cctor 以及 对象的构造过程 一点关于.ctor、.cctor以及对象构造过程的总结 .ctor: 简述:构造函数,在类被实例化时,它会被自动调用。 当C#的类被编译后,在IL代码中会出现一个名为.ctor的方法,它就是我们的构造函数,对应C#的构造函数。且看下面的代码: pub ...
转载 2021-09-20 13:26:00
2024阅读
2评论
Lua提供以下类型的循环来处理循环需求。编号循环类型描述1while循环在给定条件为真时重复语句或语句组,它在执行循环体之前测试条件。2for循环多次执行一系列语句,并缩写管理循环变量的代码。3repeat…unti循环重复语句组的操作,直到满足until条件。4嵌套循环可在任何循环中使用另一个或多个循环,如:while,for或do..while循环。循环控制声明循环控制语句从正常顺序改变执行。
转载 2024-08-09 12:50:46
71阅读
泛型for迭代器泛型for迭代器会在自己内部保存迭代函数,它会保存三个值:迭代函数、状态常量、控制变量。Lua默认的迭代函数为ipairs下面我们看看范性for的执行过程:首先,初始化,计算in后面表达式的值,表达式应该返回范性for需要的三个值:迭代函数、状态常量、控制变量;与多值赋值一样,如果表达式返回的结果个数不足三个会自动用nil补足,多出部分会被忽略。第二,将状态常量和控制变量作为参数
转载 2024-09-13 07:38:21
29阅读
1、lua_next(L, t_idx) 参数解释: L:虚拟机 t_idx:table在栈索引 返回 int:0执行失败;非0执行成功 该函数的执行流程为: ①:先从栈顶弹出一个key; ②:从栈指定位置的table取下一对key-value对,先将key入栈,再将value入栈; ③:如果②成功则返回非0值;否则返回0,并且不向栈压入
转载 2024-04-06 01:02:00
758阅读
[由于lua内核升级到5.1,因此,luaplus也同样跟着升级。最新的luaplus可以通过svn获取,地址 svn://svn.luaplus.org/LuaPlus/work51, 同时,luaplus基于5.0的内核仍然在维护更新,也可以通过svn获取,地址 svn://svn.luaplus.org/root/LuaPlus/Dev ]我将在下面说明,如何使用LuaPlus,以及如何更方
比如:var TestClass = cc.Class.extend({   _ary: []});如果不写ctor函数,那么所有 new TestClass ()的实例,都公用了1个 _ary这样就没有问题了:var TestClass = cc.Class.extend({   _ary: [],
原创 2016-02-18 21:37:11
28阅读
之前一直没理清lua_gettable和lua_settable的使用,今天理清了,顺便就做下笔记了。 1.lua_gettable void lua_gettable (lua_State *L, int index);把t[k] 值压入堆栈,这里的 t 是指有效索引 index 指向的值,而 k 则是栈顶放的值。这个函数会
转载 2024-06-13 20:41:56
248阅读
dofile函数使用在交互模式下我们只能一句一句的输入输出代码如果我们想要程序执行一段代码之后再进入交互模式我们就可以使用dofile函数lua函数的写法菜鸟教程解释 Lua 函数 在Lua,函数是对语句和表达式进行抽象的主要方法。既可以用来处理一些特殊的工作,也可以用来计算一些值。 Lua 提供了许多的内建函数,你可以很方便的在程序调用它们,如print()函数可以将传入的参数打印在控制台上
转载 2024-06-21 07:07:06
338阅读
进入vi的命令  vi filename :打开或新建文件,并将光标置于第一行首  vi +n filename :打开文件,并将光标置于第n行首  vi + filename :打开文件,并将光标置于最后一行首  vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处  vi -r filen
转载 2024-07-29 18:09:34
232阅读
一、介绍红点系统是游戏和各种软件中常用的系统,本文的目的是使用lua实现一个基于树结构的简单红点系统;代码如下local RedPointManager = {} local RedPointCPTb = { RP_UI2_Btn1 = 'RP_UI1_Btn0', } function RedPointManager:Init() self:InitRedPropertyTb() e
iuplua 简易记事本开发iup版本:3.30 32位 lua版本:5.3.5 32位 自己根据官网教程写了一下,对iup的感觉就是麻雀虽小五脏俱全.在嵌入是上做些简单的功能还是可以的,不过估计嵌入式上一般都用qt.微型机上估计用iup的比较多. 稍微例举一下优点: 1.小巧,支持使用lua语言,调试的时候不用编译过,直接可以根据lua文件运行; 2.自带一些图标库,常用的一下事件都有封装; 给
转载 2024-04-14 06:54:05
44阅读
0x02基础类型Lua有总共8种基础类型: nilbooleannumberstringuserdatafunctionthreadtablee.g:print(type("hello")) -->string print(type(2)) -->number print(type(true)) -->boolean print(type(print)) -->fun
转载 2024-03-17 14:54:19
82阅读
文章目录1.泛型迭代模式的两个组成部分2.泛型迭代器的形式2.1 泛型迭代的调用形式2.2 泛型迭代器的explist参数3.从使用开始,一步一步实现自己的迭代器3.1 获取一个迭代函数3.2 使用迭代函数3.2 自定义迭代函数3.4 迭代函数的多返回值4.迭代器生成函数5.带状态的迭代函数6.总结 Lua中有一个很重要的知识点就是迭代器,迭代器通常用于对集合进行遍历,在lua中提供了for/w
转载 2024-04-14 21:45:57
189阅读
开发工具 IDE工具:jetbrain IDEA 工具插件:EmmyLua 本机lua项目和调试lua文件 添加lua项目模板,安装完EmmyLua插
原创 2024-05-21 14:16:33
206阅读
  • 1
  • 2
  • 3
  • 4
  • 5