概述
1. 用for循环遍历数组
正常的for循环如下:
array = {"Lua", "Tutorial"}
for i= 0, 2 do
print(array[i])
end
for var=exp1,exp2,exp3 do
<执行体>
end
var 从 exp1 变化到 exp2,每次变化以 exp3 为步长递增 var,并执行一次 “执行体”。exp3 是可选的,如果不指定,默认为1。
也可以用如下形式(泛型for循环):
for i,v in ipairs(tab3)
do
print(i,v)
end
在lua中pairs与ipairs两个迭代器的用法相近,但有一点是不一样的:
pairs 可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil;
ipairs 不能返回nil,只能返回数字0,如果遇到nil则退出。它只能遍历到表中出现的第一个不是整数的key
2. 通过 select("#",…) 来获取可变参数的数量:
select(’#’, …) 返回可变参数的长度
select(n, …) 用于返回 n 到 select(’#’,…) 的参数, 返回多个参数, 如果只用一个变量接收只能获取返回的第一个参数,如:
arg = select(2, 1, 6, 8, 8, 9)
print(arg) --> 输出为:6
print(select(2, 1, 6, 8, 8, 9)) --> 输出为:6 8 8 9
还可以将可变参数赋值给一个变量, 然后用"#"操作符去可变参数长度。
function average(...)
result = 0
local arg={...} --不能写成 local arg=...
for i,v in ipairs(arg) do
result = result + v
end
print("总共传入 " .. #arg .. " 个数")
return result/#arg
end
print("平均值为",average(10,5,3,4,5,6))
3. 取长度操作符
一元运算符,返回字符串或表的长度。
如果取数组的长度,它满足 t[n] 不是 nil 而 t[n+1] 为 nil; 此外,如果 t[1] 为 nil ,n 就可能是零。
the length of a table t is only defined if the table is a sequence, that is, the set of its positive numeric keys is equal to {1…n} for some integer n
对于常规的数组,里面从 1 到 n 放着一些非空的值的时候, 它的长度就精确的为 n,即最后一个值的下标。 如果数组有大于等于一个nil值, 那么 #t 可能是指向任何一个是 nil 值的前一个位置的下标 (就是说,任何一个nil 值都有可能被当成数组的结束)。 lua table 长度解析,二分法查找
如果向统计非nil值的数组长度,可以自定义函数
function tablelength(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end
4. 字符串匹配
替换前后空格,
function trim(s)
return (string.gsub(s, "^%s*(.-)%s*$", "%1"))
end
string1 = " RUNOOB "
string2 = trim(string1)
print(string2)
最后
以上就是温柔大地为你收集整理的Lua学习笔记(一)的全部内容,希望文章能够帮你解决Lua学习笔记(一)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复