lua中没有类的概念,怎么实现类和类的继承?
lua吧
全部回复
仅看楼主
level 11
林深▫时见鹿
楼主
lua中没有类的概念,怎么实现类和类的继承?
2019年01月12日 05点01分
1
level 11
协调意志_Tox
有个叫做元表的东西,上次面试被问这个 啊啊啊!我记反掉了(又不常用。。。因为对性能有影响所以推荐不要完全依赖这个 最好手动实现一下)
a={
1,2,3
}
b=
setmetatable({},{__index=a});
print(b[1]) -- 1
print(b[2]) -- 2
推荐去看一下书,元表这个机制不要滥用,实际上不能叫做继承,但是继承本身其实也就是这么回事,所以也可以叫做继承,但是你需要手写一部分。顺便去了解一下lua的语法糖:
a:fuc() = a.fuc(a)
所以利用这个可以完成继承。其实我是很喜欢这个机制的,copyonwrite很棒
顺便强烈要求去把书看一边
2019年01月12日 13点01分
2
林深▫时见鹿
好的,谢谢
2019年01月14日 10点01分
level 1
eyofdu
虽然我只学了一天,但也知道可以用metatable仿造实现以下
http://www.dcc.ufrj.br/~fabiom/lua/11Objects.pdf
2019年01月15日 04点01分
3
1