LUA元表的正确理解
2016-08-28 19:44
316 查看
TableA = {}
function TableA:f1()
print("TableA")
end
mt = {}
function mt:__tostring()
return "mt to string"
end
function mt:f2()
print("mt")
end
mt__index = {}
function mt__index:f2()
print("mt__index");
end
mt.__index = mt__index
setmetatable(TableA, mt)
TableA:f1();
TableA:f2();
print(TableA)
输出
Program in LUA中老是把metatable的真实实现与面向对象中继承实现搞混淆
function TableA:f1()
print("TableA")
end
mt = {}
function mt:__tostring()
return "mt to string"
end
function mt:f2()
print("mt")
end
mt__index = {}
function mt__index:f2()
print("mt__index");
end
mt.__index = mt__index
setmetatable(TableA, mt)
TableA:f1();
TableA:f2();
print(TableA)
输出
TableA mt__index mt to string
Program in LUA中老是把metatable的真实实现与面向对象中继承实现搞混淆
setmetatable(o, self) self.__index = self
相关文章推荐
- 如何正确理解Spring
- 如何正确理解 PHP 的错误信息
- TCP三次握手连接及seq和ack号的正确理解
- 正确理解ThreadLocal
- lua元表的理解
- 正确理解商业智能
- 正确理解ThreadLocal
- 如何正确理解javascript的模块化
- 域名仲裁操作实践:正确理解 “出售”之恶意
- if __name__ == '__main__' 如何正确理解?
- ql数据库主键外键的正确理解-级联删除
- 如何正确理解深度学习(Deep Learning)的概念
- (转载)如何写出正确的二分查找?——利用循环不变式理解二分查找及其变体的正确性以及构造方式
- httpSession的正确理解
- 8. 正确理解“就业”,就可以顺利就业
- 如何正确理解ASP.NET中的Sender?
- TCP三次握手连接及seq和ack号的正确理解
- 如何正确理解C语言的文件
- 对Yii 2.0模型rules的理解(load()无法正确装载数据)
- (java)leetcode 第11题Container With Most Water(正确理解)