--[[
数据结构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