Lua表的简单操作及输出

Lua表的简单操作及输出

--[[尝试二---表的简单操作及输出
由于lua手册对lua中的基本类型有了全面的说明,所以在此我对于那些
和c/c++区别不大的数据类型不再过多说明。只是把那些灵活,强大并且
有别于其他高级语言的类型做些尝试,如表,线程,函数等,首先说一下
表。
其实,表是好多脚本语言都具有的一种数据类型,如python,
说它是一种类型,其实更确切的应说它是一种"数据结构",好像话说的有
些"白",因为c/c++中的数组本身就是一咱类型,也是一种基本的数据结构,
但是此处这么说一方面是为了和其它基本类型如nil,bool,string,number
等做出区分,第二方面是为了更像的说明它对数据的结构化的操纵能力,它
的使用与STL中的map很相似(同样我们也可以为其设计"迭代器")还要说明的
一点是,表是LUA中很常用的一种类型,更夸张的是,你在LUA中定义的变量,
函数等等,甚至LUA本身的环境变量都被存放到一张名字"_G"的全局表中,我
们同样可以对其遍历(关于表的遍历,下文会有简单例子),来看看它里面
都有些什么。最后一点要说明的是表中内容的类型是自由的。可以是数值,
函数,甚至是线程。
]]

--定义一个表,并赋值如下:
t={name="JNBLUE",age="26",sex="male",tel="135********",qq="83944128",
email="jnblue@sohu.com",56,57,58,59}
--[[对于那些有索引的项,如name,sex,age等,LUA会使用给定索引来进行访问。
对于那些没有给定的项,LUA会自动编上序号(从1开始),如我们可以用
t[3]来得到"58"这个值]]
--同样我们可以用另一种方法来定义一个表
t2={};
t2.name="小强"
t2.age="3个月"
t2.sex="看不出来"
t2[1]=21
t2[2]=24
--查看t的类型
print(type(t))
--使用索引形式1
print(t.name,t.qq,t.email)
--使用索引形式2
print(t["name"],t["qq"],t["email"]);
--使用索引形式3
print(t[1],t[2],t[3]);
--[[注意,LUA中可以随意的在语句结束处加入";"表示一个chunk的结束
同样也可以在任何代码段前后加入do...end也是来表示一个chunk
如果你可以在C/C++中任意代码段中加入"{...}"一样,注意这个
注释。只用了一个注释符"--"就可注释掉这么大一堆文字,是不是
很便宜?便宜的事不只是如此,因为LUA中的基本类型string也支持
这种用法。不但可以成段,而且连版式都不会变的被保存在了LUA的
string中。当你要打印或都输出到文件的时候,只要一个string就
搞定了,而不用像c/c++一样用上一大堆的转意字符或者是一长串的
strcat..看下面例子]]

str=[[
look!
看着我的眼睛...
够不够性感...
...]]
print(str);
--[[下面是一个表的遍历的例子,这是一个最基本的遍历方法,当然还有其他更多
更灵活的方法,特别是使用table库给我们提供的强大但不复杂的函数之后
你会发现操作一个table比操作一个数组还要简单]]

for e in t do
print(e,t[e])
end
--要困死了,今天先到这里吧。。jnblue,晚安!

--06年5月16日晚22:11 --JNBLUE 于 长春

推荐阅读