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