一、lua的__index

来源:互联网 发布:翻译软件 英文怎么说 编辑:程序博客网 时间:2024/05/21 10:55

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

0 0
原创粉丝点击