feixiong 发表于 2012-2-17 17:16:26

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

很多LUA教材中多次出现pairs 现理解与疑问如下:
myData = {}
myData = “foo”
myData = 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 = “xxxx”
那mydata里的第三个元素到底是谁?就是说当mydata的【】内不是数字,是字符“bar”的时候他的次序怎么算?
另外冒号 : 点号 .在LUA里的意义我看了EMPYT 和手册的相关部分还是不明白,那位高手可以用通俗的话给我解释下好么?不弄明白,看胡小刀和锡兰路径等大作太有难度

北大侠客行MUD,中国最好的MUD

feixiong 发表于 2012-2-17 20:44:29

回复 1# feixiong


    谢谢胡小刀同志对我的指点,以下是内容:
你的理解有问题。
如果你定义表格采用a={"abc","cde","daf",}这样的方式
那么a="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=a,a[]2=b,a=c
a["aa"]="abc"

xspe 发表于 2012-4-4 02:35:21

学习了,谢谢
页: [1]
查看完整版本: LUA傻瓜式学习笔记与疑问2