lua table常用函数
来源:互联网 发布:js方法注解 编辑:程序博客网 时间:2024/04/30 10:37
table函数库
一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明.
table.concat(table, sep, start, end)
concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开.
除了table外, 其他的参数都不是必须的, 分隔符的默认值是空字符, start的默认值是1, end的默认值是数组部分的总长.
sep, start, end这三个参数是顺序读入的, 所以虽然它们都不是必须参数, 但如果要指定靠后的参数, 必须同时指定前面的参数.
> tbl = {"alpha", "beta", "gamma"}
> print(table.concat(tbl, ":"))
alpha:beta:gamma
> print(table.concat(tbl, nil, 1, 2))
alphabeta
> print(table.concat(tbl, "\n", 2, 3))
beta
gamma
table.insert(table, pos, value)
table.insert()函数在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾.
> tbl = {"alpha", "beta", "gamma"}
> table.insert(tbl, "delta")
> table.insert(tbl, "epsilon")
> print(table.concat(tbl, ", ")
alpha, beta, gamma, delta, epsilon
> table.insert(tbl, 3, "zeta")
> print(table.concat(tbl, ", ")
alpha, beta, zeta, gamma, delta, epsilon
table.maxn(table)
table.maxn()函数返回指定table中所有正数key值中最大的key值. 如果不存在key值为正数的元素, 则返回0.此函数不限于table的数组部分.
> tbl = {[1] = "a", [2] = "b", [3] = "c", [26] = "z"}
> print(#tbl)
3 -- 因为26和之前的数字不连续, 所以不算在数组部分内
> print(table.maxn(tbl))
26
> tbl[91.32] = true
> print(table.maxn(tbl))
91.32
table.remove(table, pos)
table.remove()函数删除并返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起.
table.sort(table, comp)
table.sort()函数对给定的table进行升序排序.
> tbl = {"alpha", "beta", "gamma", "delta"}
> table.sort(tbl)
> print(table.concat(tbl, ", "))
alpha, beta, delta, gamma
comp是一个可选的参数, 此参数是一个外部函数, 可以用来自定义sort函数的排序标准.
此函数应满足以下条件: 接受两个参数(依次为a, b), 并返回一个布尔型的值, 当a应该排在b前面时, 返回true, 反之返回false.
例如, 当我们需要降序排序时, 可以这样写:
> sortFunc = function(a, b) return b < a end
> table.sort(tbl, sortFunc)
> print(table.concat(tbl, ", "))
gamma, delta, beta, alpha
用类似的原理还可以写出更加复杂的排序函数. 例如, 有一个table存有工会三名成员的姓名及等级信息:
guild = {}
table.insert(guild, {
name = "Cladhaire",
class = "Rogue",
level = 70,
})
table.insert(guild, {
name = "Sagart",
class = "Priest",
level = 70,
})
table.insert(guild, {
name = "Mallaithe",
class = "Warlock",
level = 40,
})
对这个table进行排序时, 应用以下的规则: 按等级升序排序, 在等级相同时, 按姓名升序排序.
可以写出这样的排序函数:
function sortLevelNameAsc(a, b)
if a.level == b.level then
return a.name < b.name
else
return a.level < b.level
end
end
测试功能如下:
> table.sort(guild, sortLevelNameAsc)
> for idx, value in ipairs(guild) do print(idx, value.name) end
1, Mallaithe
2, Cladhaire
3, Sagart
数学函数库
以下是一些常用的Lua标准库的数学成员, 按字母顺序排列.
函数 功能
math.abs(x) 返回x的绝对值
math.ceil(x) 返回不小于x的最小整数
math.deg(x) 将弧度制的x转化为角度
math.exp(x) 返回e的x次方
math.floor(x) 返回不大于x的最大整数
math.fmod(x, y) 或x % y, 返回x除以y的余数
math.log(x) 返回x的自然对数值
math.log10(x) 返回x的常用对数值
math.max(x, y, z, ...) 返回参数列表中的最大值
math.min(x, y, z, ...) 返回参数列表中的最小值
math.modf(x) 返回两个值, 依次为x的整数和小数部分
math.pi 圆周率常量
math.pow(x, y) 计算并返回x的y次方
math.rad(x) 将角度制的x转化为弧度
math.random(m, n) 产生随机数, 参数可选并影响范围: 无参数时为[0, 1),
单参数时为[1, m], 双参数时为[m, n]
math.randomseed(x) 重设随机种子
math.sqrt(x) 开平方根运算
- lua table常用函数
- LUA中常用的table函数
- Lua 笔记14 table库常用函数
- lua的table库中常用的函数
- lua的table库中的常用函数总结
- lua的table库中常用的函数
- lua table 重要函数
- lua table函数
- lua的table相关函数
- Lua封装打印Table函数
- Lua 自定义打印table函数
- Lua table转string函数
- lua常用函数
- Lua 常用函数 一
- Lua常用函数
- LUA常用函数
- Lua常用函数
- Lua 常用函数 一
- CocoaChina代码库推荐(1月10日):Flickr类型的瀑布流 Foursqaure app图片展示效果
- tomcat创建项目遇到问题
- vb 连接数据库
- poi 大数据导出测试
- Android 判断SD卡是否存在及容量查询
- lua table常用函数
- kmalloc分配内核堆空间
- 初探Java中的多线程
- 暂无
- 李宗盛演唱会火遍全国 上海场门票超订一倍
- 免费WebService对外接口(汇总)
- poi工具类
- gradle
- 影响网页加载速度的因素有哪些及优化方案