Lua
普通网友
这个作者很懒,什么都没留下…
展开
-
lua中用table实现队列
当函数只有一个参数并且这个参数是字符串或者表构造的时候,()是可选的。 print “Hello World” <–> print(“Hello World”) f{x=10, y=20} <–> f({x=10, y=20})原创 2016-10-26 00:10:44 · 19751 阅读 · 1 评论 -
[Lua]在C函数中保存状态--注册表,环境表,upvalue
什么叫做在C函数中保存状态?比如你现在使用Lua调用了C函数Func1,但是Func1中有一些数据在调用完以后保存下来,供以后使用。而这些数据就是所谓的状态,也就是我们需要保存的东东。有人就会说了,Lua调用C时,把所有的需要保存的状态都返回到Lua中,当调用下一个函数时,将需要的状态当做参数再传进去,不错,是一个办法,但是很麻烦。方法一:注册表;方法二:环境;方法三:upvalue。注册表是转载 2017-11-14 00:23:25 · 687 阅读 · 0 评论 -
lua性能优化
1.尽量使用局部变量如果你要在一个很长的循环里调用一个函数,可以预先将这个函数赋值给一个局部变量,例如:for i = 1, 1000000 do local x = math.tan(i)end比下面这段要慢30%:local tan= math.tanfor i = 1, 1000000 do local x = tan(i)end2.少用动态编译的函数例如loadstr原创 2017-10-26 16:16:17 · 286 阅读 · 0 评论 -
lua从固定table中随机出不重复的子table
function random_table(t, num) for i,v in pairs(t) do local r = math.random(#t) local temp = t[i] t[i] = t[r] t[r] = temp end num = num or #t for i = #t,n原创 2017-10-16 20:22:50 · 3725 阅读 · 1 评论 -
Linux中源码编译lua动态库
1.修改根目录下的Makefile文件TO_LIB= liblua.a 修改成 TO_LIB= liblua.a liblua.so2.修改src/Makefile在CFLAGS=加上-fPICLUA_A= liblua.a LUA_SO= liblua.so (新添加的行) 修改原创 2017-08-17 23:06:38 · 1166 阅读 · 0 评论 -
lua洗牌和发红包算法
--Fisher-Yates Shuffle--洗牌算法,用于将一组数据等概率随机打乱。等概率算法。local function shuffle(t) if not t then return end local cnt = #t for i=1,cnt do local j = math.random(i,cnt) t[i],t[j] =原创 2017-01-09 17:50:35 · 2798 阅读 · 0 评论 -
Lua 随机数生成问题
原文链接:http://blog.csdn.net/zhangxaochen/article/details/8095007Lua 生成随机数需要用到两个函数:math.randomseed(xx), math.random([n [, m]])1. math.randomseed(n) 接收一个整数 n 作为随机序列种子。2. math.random([n [, m]])转载 2017-01-09 16:56:30 · 873 阅读 · 0 评论 -
Lua中的基本函数库
转自:http://www.cnblogs.com/whiteyun/archive/2009/08/12/1543184.html基本函数库为Lua内置的函数库,不需要额外装载assert (v [, message])功能:相当于C的断言,参数:v:当表达式v为nil或false将触发错误,message:发生错误时返回的信息,默认为"assertion faile转载 2016-11-20 22:38:48 · 415 阅读 · 0 评论 -
lua总结
在某一个模块中的函数,如果该模块要被其他模块使用,则该模块中的函数不能定义为local的。……待更新原创 2016-11-10 10:13:49 · 14980 阅读 · 0 评论 -
lua工具类(二)
转自:http://www.cnblogs.com/newlist/p/3595761.htmllocal tonumber_ = tonumberfunction tonumber(v, base) return tonumber_(v, base) or 0endfunction toint(v) return math.round(tonumber(v))endfuncti转载 2016-11-15 16:59:05 · 466 阅读 · 0 评论 -
lua工具类(一)
转自:http://www.cnblogs.com/newlist/p/3595739.html---- Author: My Name-- Date: 2013-12-16 18:52:11-- csv解析 -- -- 去掉字符串左空白 local function trim_left(s) return string.gsub(s, "^%s+", ""); end转载 2016-11-15 16:57:16 · 1189 阅读 · 0 评论 -
Lua继承原理(如何实现面向对象)
注:文章出处 http://blog.csdn.net/teng_ontheway/article/details/389002111.lua中的类 lua中其实是没有类的,有的只是表(table),而类之间的继承也就是将父类的表连到了一起,派生类中没有找到的属性和方法就通过元表查找父类2.lua中类的属性 classA = {width =10, h转载 2016-11-15 16:44:13 · 1117 阅读 · 0 评论 -
SciTE编译lua的快捷键
选中,Ctrl + Q: 多行注释 选中,Ctrl + L: 删除一行或多行 F5:运行原创 2016-11-02 09:21:34 · 16058 阅读 · 0 评论 -
lua中#后加table的含义
一般来说是获得一个table的长度(即元素数),但这个操作符实际上陷阱很多。 #的实际作用是获得一个table中最大的数字键值,比如: t = {“a”, “b”, “c”, “d”} #t –输出是4 而tags[#tags+1]=tag就是一个常见的用法,在tags这个table的末端插入一个新元素tag. 但由于#仅对键值连续的数值键值有效,因此: 1、当键值为字符串等其他类型时,原创 2016-11-01 16:58:44 · 16563 阅读 · 0 评论 -
Lua 调试(Debug)
Lua 提供了 debug 库用于提供创建我们自定义调速器的功能。Lua 本身并未有内置的调速器,但很多开发者共享了他们的 Lua 调速器代码。Lua 中 debug 库包含以下函数:sethook ([thread,] hook, mask [, count]):序号方法 & 用途1.debug():进入一个用户交互模式,运原创 2016-11-16 11:55:55 · 1870 阅读 · 0 评论 -
Lua弱表Weak table
弱表(weak table)是一个很有意思的东西,像C++/Java等语言是没有的。弱表的定义是:Aweak table is a table whose elements are weak references,元素为弱引用的表就叫弱表。有弱引用那么也就有强引用,有引用那么也就有非引用。我们先要厘这些基本概念:变量、值、类型、对象。(1)变量与值:Lua是一个dynamically ty转载 2017-11-16 16:41:14 · 1010 阅读 · 0 评论