您的位置:首页 > 编程语言 > Lua

一、lua的__index

2016-01-07 15:24 330 查看

lua中__index是面向对象非常基础一个知识

没有__index举例:

father = {
house=1
}
son = {
car=1
}
setmetatable(son, father) --son metatable设为father
print(son.house)


结果:nil


有__index的例子:

father = {
house=1
}
father.__index = father -- 把father的__index方法指向自己
son = {
car=1
}
setmetatable(son, father)
print(son.house)


结果:1


1.在表中查找,如果找到,返回该元素,找不到则继续

2.判断该表是否有元表,如果没有元表,返回nil,有元表则继续

3.判断元表有没有__index方法,如果__index方法为nil,则返

回nil;如果__index方法是一个表,则重复1、2、3;如果__index方法是一个函数,则返回该函数的返回值


from:http://blog.csdn.net/xocoder/article/details/9028347
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua