Lua教程(三):C语言、C++中调用Lua的Table示例
从写上一篇lua的文章到现在,已经过去半月有余了,是时候让自己的lua状态refresh一下了。本教程将介绍lua的栈及基本栈操作,同时还有如何在c/c++代码里面读取lua的table。理解lua栈lua通过一个“虚拟...Lua教程(一):简介、优势和应用场景介绍
一、简介:lua作为目前最为流行的、免费轻量级嵌入式脚本语言,在很多工业级的应用程序中被广泛应用,如adobe'sphotoshop,甚至是在一些著名的游戏程序中也被大量使用,如星际。不仅如此,由于lua具备很...- 0
- 0
- 0
- 0
- 0
Lua时间转化的几个小例子
1、把时间秒,转化为xx天xx时xx分xx秒的形式--把时间秒,转化为xx天xx时xx分xx秒的形式functionconverttimeform(second)localtimeday=math.floor(second/86400)localtimehour=math.fmod(math.floo...- 0
- 0
- 0
- 0
- 0
Lua中实现面向对象的一种漂亮解决方案
在pil中,lua的作者推荐了一种方案来实现oo,比较简洁,但是我依然觉得有些繁琐。这里给出一种更漂亮一点的解决方案,见下文:这里提供lua中实现oo的一种方案:复制代码代码如下:local_class={}functi...- 0
- 0
- 0
- 0
- 0
Lua性能优化技巧(五):削减、重用和回收
当处理lua资源时,我们也应该遵循提倡用于地球资源的3r原则——reduce,reuseandrecycle,即削减、重用和回收。削减是最简单的方式。有很多方法可以避免使用新的对象,例如,如果你的程序使用了太多的表,...- 0
- 0
- 0
- 0
- 0
Lua多重继承代码实例
localfunctionsearch(k,plist)fori,vinpairs(plist)dolocaltemp_v=v[k]iftemp_vthenreturntemp_vendendendfunctioncreateclass(...)localc={}localparents={...}--父类列表中搜索方法setmetata...- 0
- 0
- 0
- 0
- 0
Lua中遍历数组和table的4种方法
方法一,可以用for来遍历:复制代码代码如下:dotable_week={"w","e","r","t","y","u","i",}fori=1,#table_weekdoprint(table_week[i])endend#后面接一个数组或者tabe来遍历它,i是该table或者数组...- 0
- 0
- 0
- 0
- 0
Lua中的metatable介绍
setmetatable(table,metatable)lua中的每个值都可以用一个metatable。这个metatable就是一个原始的luatable,它用来定义原始值在特定操作下的行为。你可以通过在metatable中的特定域设一些值来改...- 0
- 0
- 0
- 0
- 0
理解Lua中的__index和__newindex
复制代码代码如下:--example:localtemp_table={10,1,index1="hello",index2="world",index3="lua",index4="language",lang="lualanguage",}temp_table.__add=function(a,b)return3endfor_,valu...- 0
- 0
- 0
- 0
- 0
Lua之字符串格式化例子和常用格式化参数介绍
复制代码代码如下:a='aadsdf"'print(string.format("%q",a))%d十进制整数%o八进制整数%x十六进制整数,大写的话为%x%f浮点型格式[-]nnnn.nnnn%e科学表示法格式[-]n.nnnne[+|-]nnn,大写的话为%e%...- 0
- 0
- 0
- 0
- 0
Lua中的弱引用介绍
一个table的弱引用类型是通过其元素表中的__mode字段来决定的,这个字段的值应为一个字符串,如果这个字符串中包含字母'k'/'v'那么这个table的value是弱引用,代码如下:复制代码代码如下:key={}a[...- 0
- 0
- 0
- 0
- 0
Lua table的concat方法使用实例
一部分的table函数只对其数组部分产生影响,而另一部分则对整个table均产生影响.下面会分开说明.复制代码代码如下:table.concat(table,sep,start,end)concat是concatenate(连锁,连接)的缩写.tab...- 0
- 0
- 0
- 0
- 0
Lua操作字符串的5个代码片段分享
1.匹配字符串中的数字、字母和下划线复制代码代码如下:str="hello_+asdf2312+887441a+asdf"table={}string.gsub(str,"([%w_]+)",function(w)table.insert(table,w)endend2.替换字符串中的指定字...- 0
- 0
- 0
- 0
- 0
Lua中table的几种构造方式详解
之前对于lua的研究都是纸上谈兵,没有真正的项目练手,现在公司的项目基本上都是用lua开发,是时候补充一下我那蹩脚的lua知识了。基础数据类型、表达式、循环结构什么的我就不说了,这么简单的东西说...- 0
- 0
- 0
- 0
- 0
Lua判断字符串中包含中文字符的方法和计算字符串宽度函数分享
一、判断字符串中包含中文字符的方法遍历数组,对每个字节使用string.byte(),发现有大于127的,就是汉字,可以参照下面的代码。二、计算字符串宽度函数复制代码代码如下:--计算字符串宽度localstr="j...- 0
- 0
- 0
- 0
- 0
Lua判断字符串前缀是否为指定字符的3种方法
在写luadebugger的时候,我需要判断一个字符串的前缀是不是"@"。有三个方案:1.比较直观的是string.sub(str,1,1)=="@"2.感觉效率比较高的是string.byte(str)==643.或者是string.find(str,"@")==1...- 0
- 0
- 0
- 0
- 0
Lua中的迭代器浅析
今天学习的内容还蛮有意思的,让我兴奋了一下~1.迭代器什么是迭代器?别傻了,我最讨厌的就是名词解释了,反正就是用来遍历集合的一种方式。比如,我们最常用的pairs,如下代码:复制代码代码如下:loca...- 0
- 0
- 0
- 0
- 0
Lua中获取table长度的方法
官方文档是这么描述#的:取长度操作符写作一元操作#。字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。tablet的长度被定义成一个整数下标n。它满足t[n]不是nil而t[n+1]为nil;...- 0
- 0
- 0
- 0
- 0
Lua中获取table长度问题探讨
又有同事在lua的table长度问题上犯错了,我们一起来看看吧~~~看以下代码:复制代码代码如下:localtbltest1={1,2,3}print(table.getn(tbltest1))这段代码输出的结果是3,这个大家都知道,是吧。不管...- 0
- 0
- 0
- 0
- 0