Lua中类的实现原理探讨(Lua中实现类的方法)

exit_20209 9 0 pdf 2021-05-26 12:05:08

Lua中没有类的概念,但我们可以利用Lua本身的语言特性来实现类。理解了类实际上是一个键值对的集合,我们不难想到用Lua中自带的表来实现类。metatable的中文名叫做元表。元表的作用就是增加和改变表的既定操作。通过另一个全局方法getmetatable则会返回它的元表m。元表作为一个表,可以拥有任意类型的键值对,其真正对被设置的表的影响是Lua规定的元方法键值对。以上我们了解到,元表的__index属性实际上是给表配备了找不到键时的行为。因为元表的__add属性是给表定义了使用+号时的行为。我们的实例也是一个表,然后我们类作为一个元表设置到实例上,并设置类的__index值为自身。

Lua中类的实现原理探讨(Lua中实现类的方法)

Lua中类的实现原理探讨(Lua中实现类的方法)

Lua中类的实现原理探讨(Lua中实现类的方法)

Lua中类的实现原理探讨(Lua中实现类的方法)

Lua中类的实现原理探讨(Lua中实现类的方法)

用户评论
请输入评论内容
评分:
暂无评论