1元建站,建立公司流程,代理做减肥网站,临沭网站建设文章目录1.table 声明与访问2. table 的两种遍历方式 pairs 和 ipairs2.1 pairs2.2 ipairs2.3 例3.迭代器实现 ipairs 效果4.获取 table 长度4.1 #table 获取长度4.2 自定义函数获取 table 长度注意事项1.table 声明与访问
-- 初始化表
tbl {} -- 不可以是 tbl nil-- 赋值
-…
文章目录1.table 声明与访问2. table 的两种遍历方式 pairs 和 ipairs2.1 pairs2.2 ipairs2.3 例3.迭代器实现 ipairs 效果4.获取 table 长度4.1 #table 获取长度4.2 自定义函数获取 table 长度注意事项1.table 声明与访问
-- 初始化表
tbl {} -- 不可以是 tbl nil-- 赋值
-- table 赋值有以下两种其中1是记录(record)风格2是列表(list)风格
local tbl {t1 1,t2 2,3,4,-- [t3] 5, [3] 6-- [1] 7, -- 不要这样去写
}-- 访问
print(tbl.t1) -- 1 record 风格访问
print(tbl[1]) -- 3 list 风格访问2. table 的两种遍历方式 pairs 和 ipairs
2.1 pairs
pairs 优先按顺序输出没有(默认)key的值无序输出字母类型key或者数字类型key的键值遇到nil不输出但不会停止遍历
2.2 ipairs
ipairs 从第一个索引 key 1 开始依次输出所有的 key1 的键值遇到字母下标并不会结束遍历只是不输出而已如果遇到nil则退出
2.3 例
tbl {[val1] val1, 1, 2 , 3, nil, [5] 5, [7] 7, 6} -- tbl[5] 6
print(-----------ipairs----------------)
for k,v in ipairs(tbl) doprint(k,v)
end
print(-----------pairs----------------)
for k,v in pairs(tbl) doprint(k,v)
end输出
-----------ipairs----------------
1 1
2 2
3 3
-----------pairs----------------
1 1
2 2
3 3
5 6
7 7
val1 val13.迭代器实现 ipairs 效果
function iter (a, i)i i 1local v a[i]if v thenreturn i, vend
endfunction ipairs (a)return iter, a, 0
end4.获取 table 长度
4.1 #table 获取长度
# 最好只用来获取数组类型(都是默认 key 值)的 table 长度 # 获取的 table 长度可能不准确
local tblTest1 {1, a 2, 3,}
print(table.getn(tblTest1)) -- 24.2 自定义函数获取 table 长度
function getLength(tbl)local len 0for k,v in pairs(t) dolen len 1endreturn len
end
tbl {2, 3, 4, 5}
tbl[2] nil
print(#t) --this will output 4
print(length(t)) --this will output 3, because tbl[2] was deleted注意事项
#获取表长度可能不准确在 table 中不要使用 nil,如果一个元素要删除直接 remove不要用 nil 去代替。