北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 3665|回复: 2

LUA傻瓜式学习笔记与疑问2

[复制链接]
发表于 2012-2-17 17:16:26 | 显示全部楼层 |阅读模式
很多LUA教材中多次出现pairs 现理解与疑问如下:
myData = {}
myData[0] = “foo”
myData[1] = 42
myData[“bar”] = “baz”

for key, value in pairs(myData) do
print(key .. “=“ .. value)
end
--key就是mydata里第几个元素的名字 比如这里就是3个名字 0 1 bar
--VALUE就是这几个元素的内容
--即:对于在MYDATA里的所有元素 打印他们的名字和内容

输出结果
0=foo
1=42
bar=baz
我的疑问:
myData[“bar”] 如果是第三个元素的话,那么如果我在他后边在定一个myData[3] = “xxxx”
那mydata里的第三个元素到底是谁?就是说当mydata的【】内不是数字,是字符“bar”的时候他的次序怎么算?
另外冒号 : 点号 .在LUA里的意义我看了EMPYT 和手册的相关部分还是不明白,那位高手可以用通俗的话给我解释下好么?不弄明白,看胡小刀和锡兰路径等大作太有难度

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2012-2-17 20:44:29 | 显示全部楼层
回复 1# feixiong


    谢谢胡小刀同志对我的指点,以下是内容:
你的理解有问题。
如果你定义表格采用a={"abc","cde","daf",}这样的方式
那么a[1]="abc"。依次类推

如果你的表格里有索引 a={["a"]="abc",["b"]="cde",}
那么你的索引就是a.a="abc" a.b="cde"
也就是说索引在lua里可以不是数字。

而你的第三个元素是被定义为第三个没有特殊指定索引的那个值。。。
没有索引才有1,2,3,有索引,的就是按索引指向值。

a={"a","b",["aa"]="abc","c",["bb"]="dd",}
那么a[1]=a,a[]2=b,a[3]=c
a["aa"]="abc"
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2012-4-4 02:35:21 | 显示全部楼层
学习了,谢谢
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-17 09:39 AM , Processed in 0.011427 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表