lua table 详解
创始人
2024-05-31 10:28:45
0

文章目录

  • 1.table 声明与访问
  • 2. table 的两种遍历方式 pairs 和 ipairs
    • 2.1 pairs
    • 2.2 ipairs
    • 2.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 开始,依次输出所有的 key+1 的键值,遇到字母下标并不会结束遍历,只是不输出而已,如果遇到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    val1

3.迭代器实现 ipairs 效果

function iter (a, i)i = i + 1local v = a[i]if v thenreturn i, vend
endfunction ipairs (a)return iter, a, 0
end

4.获取 table 长度

4.1 #table 获取长度

# 最好只用来获取数组类型(都是默认 key 值)的 table 长度
# 获取的 table 长度可能不准确

local tblTest1 ={1, a = 2, 3,}
print(table.getn(tblTest1))	-- 2

4.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

注意事项

  1. #获取表长度可能不准确
  2. 在 table 中不要使用 nil,如果一个元素要删除,直接 remove,不要用 nil 去代替。

相关内容

热门资讯

小学三年级说好普通话作文(优... 小学三年级说好普通话作文 篇一我要当一个好学生我是一个小学三年级的学生,我知道要成为一个好学生,首先...
三年级的黄果树瀑布的作文怎么... 篇一:三年级的黄果树瀑布之旅黄果树瀑布是中国贵州省的一处自然景观,也是我国最大的瀑布之一。作为一个三...
三年级作文抓鱼趣事21篇【最... 三年级作文抓鱼趣事21篇 篇一:我和小伙伴们的抓鱼经历在一个阳光明媚的周末,我和几个小伙伴决定去河边...
三年级作文:踢足球(精简6篇... 三年级作文:踢足球 篇一踢足球是我最喜欢的运动之一。我每天放学后都会和朋友们一起来到学校的操场上踢球...
写快乐的一件事三年级的作文3... 篇一:快乐的一件事在我三年级的时候,有一次我和妈妈一起去公园玩,那是一个阳光明媚的周末早上。我们带了...
秦皇岛黄金海岸游记三年级作文... 秦皇岛黄金海岸游记三年级作文 篇一我和家人去了秦皇岛黄金海岸度假,这是我人生中最美好的一次旅行。黄金...
一次旅行的经历作文三年级作文... 一次旅行的经历作文三年级作文 篇一我最难忘的一次旅行是和爸爸妈妈去海边玩的那次。那是一个阳光明媚的早...
三年级看图写作文借伞【优质6... 三年级看图写作文借伞 篇一今天,我们班级进行了一次有趣的活动,每个同学都被要求写一篇关于“借伞”的作...
三年级上册语文句子复习(优质... 三年级上册语文句子复习 篇一在三年级上册的语文学习中,我们学习了许多句子,现在让我们来进行一次复习吧...
三年级作文这一次我被感动了4... 篇一:三年级作文这一次我被感动了43篇这一次我被感动了43篇作文,这是我在三年级最难忘的一次经历。这...
木鱼岛小学三年级作文300字... 木鱼岛小学三年级作文300字 篇一我的梦想我是木鱼岛小学三年级的学生,我的名字叫小明。我有一个美丽的...
三年级的海边作文200字【精... 三年级的海边作文200字 篇一我在海边玩耍今天是个晴朗的日子,我和爸爸妈妈一起去海边玩耍。海边的沙滩...
三年级作文我的爸爸300字(... 三年级作文我的爸爸300字 篇一我的爸爸是一个非常疼爱我的人。他虽然有时候工作很忙,但是每天晚上都会...
我的植物朋友三年级作文(精彩... 我的植物朋友三年级作文 篇一我的植物朋友我家有一盆小红花,它是我的植物朋友。我每天都会给它浇水,晒太...
我的中秋节三年级作文400字... 我的中秋节三年级作文400字 篇一我和家人一起过中秋节中秋节是中国的传统节日,我和家人一起过了一个特...
三年级作文我可爱的小妹妹(推... 三年级作文我可爱的小妹妹 篇一我家有一个可爱的小妹妹,她叫小婷婷。她今年三岁,是一个活泼开朗的小女孩...
有万里长城作文三年级【优质6... 有万里长城作文三年级 篇一万里长城是中国古代的伟大工程,也是世界上最长的人类建筑物。长城是由很多砖石...
家乡一角100字作文三年级【... 家乡一角100字作文三年级 篇一我家乡的一角是一个美丽的公园。公园里有一片绿草地,上面开满了五颜六色...
小学三年级作文500字【实用... 小学三年级作文500字 篇一我最喜欢的动物我最喜欢的动物是猫咪。猫咪有着柔软的毛发和灵活的身体。它们...
独自走在小路上【最新5篇】 独自走在小路上 篇一独自走在小路上,我感受到了一种独特的自由和宁静。小路被绿树环绕,阳光透过树叶间的...