Lua 备忘清单 & lua cheatsheet & 速查表
初始化数组
初始化一个空数组
local array = {}
默认的数组索引从 1 开始
local array = { "a", "b", "c", "d" }
array[5] = "e"
for i = 1, 5 do
print(array[i])
end
多维数组
local array = {
{ "a", "b", "c" },
{ "d", "e", "f" }
}
for i = 1, #array do
for j = 1, #array[i] do
print(array[i][j])
end
end
初始化 table
local table = {}
table.name = "fw"
table.age = "18"
table["sex"] = "boy"
-- 获取 table 的长度
print(#table) -- 0
-- 如果想要删除一个 table,那么可以使用 nil 赋值
table = nil
print(table)
table 方法
-- 用于连接 table 中指定的元素
-- table.concat(table [, sep [, start [, end]]])
local a = { "apple", "orange", "peach" }
print(table.concat(a, "->", 2, 3)) -- orange->peach
-- 用于向指定闻之插入元素。默认数组末尾
-- table.insert(table, [pos,] value)
local a = { "apple", "orange", "peach" }
table.insert(a, 1, "pear")
print(a[1]) -- pear
-- table.move(a1,f,e,t[,a2])
-- 表a1,a1下标开始位置f,a1下标结束位置e,t选择移动到的开始位置(如果没有a2,默认a1的下标)
local array = { "a", "b", "c" }
for i,v in pairs(table.move(array, 1, 3, 2)) do
print(v)
end -- a a b c
-- table.sort (table [, comp])
-- 排序,默认是升序
local array = { "a", "c", "b" }
local f = function(a, b)
return string.byte(a) - string.byte(b) > 0
end
table.sort(array, f)
for i, v in pairs(array) do
print(v)
end -- c b a
迭代器
无状态的迭代器
function square(d,n)
if n < d
then
n = n + 1
return n, n*n
end
end
for i,n in square,5,0
do
print(i,n)
end
for 循环迭代器
for i, n in pairs({ 1, 2, 3, 4 }) do
print(i, n)
end