积木

No sub title

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  140 Posts :: 1 Stories :: 11 Comments :: 0 Trackbacks

常用链接

留言簿(1)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 1 
 2 -- 学习一下表结构的语法
 3 function studyTableStruct()
 4 
 5     local testTable = {};   --初始化一个空的(即:该表中没有任何域)
 6     testTable[2= "是吧";
 7     print(testTable[2]);    --此处正常输出。说明就算是添加新字段,字段的索引也未必就一定要按顺序从1开始。
 8     testTable[1= "ak47";  --添加一个无名字的新字段,而且它的索引值是为1的。([a]记住:只要字段有索引的概念,则它就没有名字) 。这边的 [a]与下面的 [b] 说明很关键
 9     print(testTable[1]);
10     testTable.newField = "newfield";--添加一个名字为newField的新字段。([b]记住:只要字段有名字,则它就没有索引这一概念。)
11     print(testTable.newField);
12     testTable["x"= "哇塞,这也行?";
13     print(testTable["x"]);
14     
15     -- 如果理解了上面的 [a] 与 [b] ,则很容易理解下面的例子
16     local a = {x = 20, y = 0};--这个例子是来自教材上的例子。但是在此本人有做了修改。并亲自测试过后,总结了上面的 [a] 与 [b] 点
17     print(a.x);         --输出:20
18     print(a[1]);        --输出:nil
19     print(a["x"]);      --输出:20
20     --如果将a的结构改成如下:
21     a = nil;
22     a = {x = 20"agogo", y = 0"ak47""mytest"};
23     print(a.x);         --输出:20
24     print(a[1]);        --输出:agogo
25     print(a[2]);        --输出:ak47
26     print(a[3]);        --输出:mytest
27     print(a["x"]);      --输出:20
28     --pritn(a[x]);        --这样会蹦。要么像 a[1]那样访问。即:中括号呈的内容必须为数字或者使用双引号括号起来
29     --[[
30     总结一下上面的测试例子:
31     1) 大括号:{} 是用来定义一个表结构的。所谓的定义,其实只不过是给表一个初始化的作用。其实里面的字段域有几个或怎么初始化,都只是影响到初始化时的状态。
32         后面不要时,完全可以随时将某个字段删除掉(提示:删除只需要将该字段赋nil即可。)
33         也完全可以随时随地添加一个新的字段。
34         正因为如此灵活,所以说 {} 仅仅只是影响表的初始化的结构状态。
35     2) 表的字段域的访问有两种:YourTable.FieldName以及使用中括号 [] 来访问。
36         a) 如果所访问的字段不存在。则返回nil
37         b) 使用YourTable.FieldName访问字段时,则如果表中不存在FieldName这个字段时,返回nil。存在时,返回相应的值。像上面的a表中的x与y就可以用这种方式访问。
38             或者上面的testTable表中的newField或者 x字段就可以这样子访问
39         c) 使用中括号 [] 访问时,如果表中的字段是有名称的话,则字段必须使用双引号括号起来。否则访问不到。并且还会蹦。
40         d) [] 中的内容,只能是数值索引,或者是使用双引号括号起来的字段的名称。
41     ]]--
42     
43 end
44 
45 
posted on 2012-12-08 14:18 Jacc.Kim 阅读(335) 评论(0)  编辑 收藏 引用 所属分类: Lua

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理