lua基础【三】唯一数据结构table表

--[[
 
 数据结构table对象(一种动态分配的对象)
 lua中的表操作。table类型实现了“关联数组的”。

“关联数组是一种具有特殊索引方式的数组” 能够通过下标或者字符串来索引它,table没有固定的大小,table是Lua仅有的数据结构, 既然这么说,就表明table的意义非常重大,也极为重要 我们能够用table表示普通数组,字符表,集合记录,队列。也能够通过table 表示。模块(module),包(package),对象object table的创建是通过uoge构造表达式完毕的,最简单的构造表达式是{} ]]-- --创建一个table tab={} --循环加入条目 for i=1,10 do tab[i]=i end --获取table的长度 print(#tab) for i=1,#tab do print(tab[i]) end --单一加入条目(这两种加入条目的做法都是一样的,我更側重于第一种方式) tabs={} tabs.name="hello" tabs["name"]="world" print (tabs.name) t={color="red",x=3,3,4} print(#t)--结果是2 print(t.color) --red --[[ 关于lua的函数,function ]]-- --[[ lua中自己定义类型和线程 ]]-- --[[ lua表达式 应记住下面关系操作符 < > <= >= == ~= --不等于 逻辑操作符: and or not ]]-- --[[ table构造式。构造式是用于创建和初始化table的表达式,这是lua特有的一种表达式。而且yeshilua 中最实用的,最通用的机制之中的一个 最简单的构造式就是一个空构造式{},用于创建一个空的table。 比如: ]]-- days={"sunday","monday","tuesday","wednesday","Thursday","Firday","staturday"} --会将days[1]初始化为sunday,days[2]初始化为monday print(days[4]) --lua还提供了一种特殊的语法用于初始化记录风格的table a={x=10,y=20} --它等价于下面写法 a={} a.x=10 a.y=20 --lua中删除一个table得条目,仅仅须要将该条目置空就可以 --[[ 在构造式中还能够用分号取代逗号。一般会将分号用于切割构造式中不同的成分。 比如: 将列表部分与记录部分明显的分开 ]]-- a15={x=10,y=45; "one","two","three"}


--[[
table相关
]]--

--获取表中的原书个数
str={"halou","nihao","zaima"}
print(table.getn(str))

--向表中插入元素
table.insert(str,4,"women")

--从表中删除元素
for k, v in ipairs(str) do

table.remove(str,k)
end


str[1]="chiba"
for i=1,#str do
  print(str[i])
end

--lua语言极为相似C语言,我们能够对其biao得内部进行管理,假设表的
--内部被改变,则原表也会发生改变

str2={name="hehe",xuhao="2011",age=24 ; 24,23,25}

print(table.getn(str2))

table.insert(str2,2,15)

for k,v in ipairs(str2) do
	print(v)
end

--2号位置插入一个元素后,原来二号位置的元素会向后移动一个位置

--关于二维表,就是须要表示两个以上的字段。
a={name={"zhangsan","lishi","wangwu"},age={24,25,26}}
 for k,v in ipairs(a.name) do 
 print(v)
 end

原文地址:https://www.cnblogs.com/gccbuaa/p/7250766.html