脚本语言LUA里 表的问题,具体见描述
刚开始学习LUA,语法只是清楚个大概,学过C++,感觉LUA的表就像是STL里的MAP,看网上说的LUA里的表,可以通过两种方式来访问元素,一种是".",一种是"[]",...
刚开始学习LUA,语法只是清楚个大概,学过C++,感觉LUA的表就像是STL里的MAP,看网上说的LUA里的表,可以通过两种方式来访问元素,一种是" . ",一种是"[]",那么问题来了:
a= {}
a[1] = 0;
a.2 = 22;
a.x = "x";
a[3] = "333";
LUA的表在使用[]时,是否只能是在用于给某个元素赋值?
player = {
Name = "Pao",
Address = "Dragon vale of China",
skill = function(person)
print ("End of talk!Let's fight!")
end
}
local NewGame = {};
print(player["skill"])
NewGame[Skill] =
player["skill"];
NewGame.Skill()
上面这段代码,在运行到第二个player["skill"] 时提示table index is nil,这是什么意思?
第一个player["skill"]打印出来并不是nil啊,是正确的function: 0075CFA8。
求大神帮忙解答下! 展开
a= {}
a[1] = 0;
a.2 = 22;
a.x = "x";
a[3] = "333";
LUA的表在使用[]时,是否只能是在用于给某个元素赋值?
player = {
Name = "Pao",
Address = "Dragon vale of China",
skill = function(person)
print ("End of talk!Let's fight!")
end
}
local NewGame = {};
print(player["skill"])
NewGame[Skill] =
player["skill"];
NewGame.Skill()
上面这段代码,在运行到第二个player["skill"] 时提示table index is nil,这是什么意思?
第一个player["skill"]打印出来并不是nil啊,是正确的function: 0075CFA8。
求大神帮忙解答下! 展开
推荐于2017-09-30 · 知道合伙人互联网行家
关注
展开全部
其实要是仔细看书的话就会发现
所谓的"."不是特殊的语法,而是语法糖,所谓的语法糖 就是并非引入了新的概念,而只是一些缩写而已
例如
local t = {}
t.a = "aaa"
等价于
t["a"] = "aaa"
可以看出来 "."仍然表示访问这个表 但是是以点之后的内容的字符串为下标来访问
而且书上有提到过 点之后的内容 必须以英文字母或下划线开头,而不能以数字符号或汉字等其他字符开头
所以 用点访问 只是一种缩写的语法
至于有的时候甚至会看到使用冒号来访问
t:fun()
这个其实也只是一个语法糖 并没什么新内容 具体的可以自行百度 我记得我在百度知道已经回答过很多次了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询