翻译自《Lua Programming Gems》Chapter 2:Lua Performance Tips:Basic fact By Roberto Ierusalimschy编写高效Lua代码方法表相关 通常情况下,你在使用表(table)时候并不需要任何有关Lua如何实现表细节。事实上,Lua竭尽全力地避免实现细节暴露给用户。但是这些细节还是在table操作性能暴露出来了。所以
目录声名变量 number类型和运算符 string类型        字符串和数字互相转化 函数table数组数字下标table接口 字符串下标的table全局table——_Glua里真和假分支语句 循环语句for循环 while循环 补充:声名变量    &n
转载 2024-05-29 14:57:13
149阅读
1.使用局部变量local 这是最基础也是最有用策略,虽然使用全局变量并不能完全避免,但还是应该尽量避免,取而代之使用局部变量即local。这里局部变量也包括函数function,因为在Lua里函数也是一个变量。局部变量存取会更快,而且在生命周期之外就会释放掉。使用全局变量 CCX = display.contentCenterX --global variable for i = 1,
转载 2024-05-21 15:46:07
794阅读
之前一直没理清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阅读
这里主要写Lua字符串TString相关结构和算法。文章没有贴Lua源码,只画出了结构图,和算法伪代码。这样阅读起来更加直观。一、TString概述 1、lua字符串是常量,例s = s .. 1 创建了一个新字符串赋值给s,并不是改变了s字符串数据。 2、lua字符串分为长字符串和短字符串。 长字符串和短字符串区别 (1)存储方式: 短字符串:全局存储一份 长字符串:多份 (
转载 2024-03-22 11:02:25
210阅读
lua数据结构真的很无敌。 用tables实现了数组,矩阵,稀疏矩阵,链表,栈,队列,双向队列,集合。 其中在操作队列时候,lua手册中提供了一种处理大数据方式,比标准库提供标准函数要快。再重述一下tables功能: tables就是一个对象,它里面什么都可以放(由于在lua,函数也是一种数据类型,所以连函数都能放进去,感觉上像是一个类,但是操作型比类要强)。 它下标可以是
转载 2024-03-20 11:00:53
140阅读
--冒号:在定义时省略了self --点号:在定义时不省略selfClass = {} Class.__index = Class function Class.new(x,y) local cls = {} setmetatable(cls, Class) cls.x = x cls.y = y return cls end function Cla
转载 2020-02-26 00:53:00
408阅读
2评论
从零开始复现CVE-2023-34644说实话复现这个漏洞光调试我就调了一个星期,主要是逆向很难仿真启动脚本tar czf rootfs.tar.gz ./rootfs scp rootfs.tar.gz root@192.168.192.135:/root/rootfs cd rootfs chmod -R 777 ./ mount -bind /proc proc mount -bind /d
Lua 简介Lua 是一种轻量小巧脚本语言,也是号称性能最高脚本语言,它用C语言编写并以源代码形式开放。某些程序常常需要修改内容,而修改内容不仅仅是数据,更要修改很多函数行为。而修改函数行为这种事,很难用简单更改数据方式来实现,若在源代码层面上改又得重新编译生成,导致修改成本高。而脚本语言先通过更改数据,并加了一层对数据解释成运行代码步骤,从而使程序能在运行时更改复杂函数行为而无
Lua table(表) table 是 Lua 一种数据结构用来帮助我们创建不同数据类型,如:数字、字典等。 Lua table 使用关联型数组,你可以用任意类型值来作数组索引,但这个值不能是 nil。 Lua table 是不固定大小,你可以根据自己需要进行扩容。 Lua也是通过table来解决模块(module)、包(package)和对象(Object)。 例如string.
转载 2024-05-22 18:58:24
132阅读
Lua提供以下类型循环来处理循环需求。编号循环类型描述1while循环在给定条件为真时重复语句或语句组,它在执行循环体之前测试条件。2for循环多次执行一系列语句,并缩写管理循环变量代码。3repeat…unti循环重复语句组操作,直到满足until条件。4嵌套循环可在任何循环中使用另一个或多个循环,如:while,for或do..while循环。循环控制声明循环控制语句从正常顺序改变执行。
转载 2024-08-09 12:50:46
71阅读
详解string库 string.sub 接下来几节会讲解string库各种接口 string.sub(s, i [, j]) 返回字符串 s ,从索引i到索引 j 之间子字符串。 i 可以为负数,表示倒数第几个字符。 当 j 缺省时,默认为 -1,也就是字符串 s 最后位置。 当索引 i 在字符串 s 位置在索引 j 后面时,将返回一个空字符串。 下面是例子:print(string
th> a=torch.zeros(1,5) [0.0001s] th> a 0 0 0 0 0 [torch.DoubleTensor of size 1x5] ...
转载 2016-12-23 15:15:00
166阅读
2评论
th> a=torch.zeros(1,5) [0.0001s] th> a 0 0 0 0 0 [torch.DoubleTensor of size 1x5] ...
转载 2016-12-23 15:06:00
297阅读
2评论
Lua表在某种意义上也可以看做对象,表有状态(成员变量),可以有自己成员函数。一.“类”与“对象(instance)”实现为了使对象有独立生命周期,故在定义方法时候带上一个额外参数,来表示方法作用对象,在Lua这个对象就是self.使用self参数定义函数后,这个函数就可以作用在多个对象上。1.1 . 和 :区别:①使用.访问方法,声明时需要带上一个额外参数,表示方法作用
转载 6月前
35阅读
Lua之metatable 一、元表Lua每个值都有一套预定义操作集合,也可以通过metatable(元表)来定义一个值行为,metatable包含了一组meatmethod(元方法)。Lua每个值都有一个metatable,table和userdata可以有各自独立metatable,而其他类型值则共享其类型所属单一metatable。 在Lua代码,只能
转载 2024-09-04 17:03:50
132阅读
lua,一款很轻量级很nice很强大脚本语言,做为lua中使用最为频繁table表,在使用之时还是有颇多好处与坑;下面是大牛 云风一片关于lua tableblog,可使得对lua table内在机制 窥测一二; lua 整体效率是很高,其中,它 table 实现很巧妙为这个效率贡献很大。lua table 充当了数组和映射表双重功能,所以在实现时就考虑了这些,让 ta
转载 2024-05-24 18:54:31
79阅读
         【Lua基础系列】之类型与值 (字符串String)          大家好,我是Lampard~~       欢迎来到Lua基础系列博客       PS:本博客知识参考资料为:《Lu
转载 2024-02-24 22:50:23
157阅读
Lua 函数functionnote 目录lua函数定义,声明,调用lua函数参数lua函数返回值深入lua函数1:Lua 函数定义和声明【定义】 在lua,函数是一种对语句和表达式进行封装抽象主要机制。函数既可以完成默写特定任务,也可以只做一些计算并返回结果。【声明】function func(arg1,arg2) ... 函数体 ... return(可
转载 2024-02-23 19:53:34
93阅读
注册C语言函数int foo(lua_State *L) { int n=lua_tonumber(L,1); lua_pushnumber(L,n+1); return 1; } lua_State *L=stack->getLuaState(); lua_register(L,”foo”,foo); local i=foo(99); print(“lua_bind:”..t
转载 2024-07-29 23:55:03
1526阅读
  • 1
  • 2
  • 3
  • 4
  • 5