1:self类似c++中的this指针,指向当前正在使用这个table的实例
2:”.”点号就是基本的table索引的方式
3:”:”冒号,记住一点就是省略self这个参数的作用,无论是在定义函数,还是在调用函数都是这个作用。冒号只能用于函数调用和定义,不能用于其他的情况
local mt = {}
mt.num = 100
function mt.add_num(n)
mt.num = mt.num + n
end
function mt.sub_num(n)
self.num = self.num - n
end
function mt:mul_num(n)
self.num = self.num * n
end
function mt.div_num(self, n)
self.num = self.num / n
end
mt.add_num(100)
print(mt.num)
--以下调用出错,因为没有全局self值
--mt.sub_num(40)
--print(mt.num)
-- mt.mul_num(10) will be wrong
mt.mul_num(mt, 10)
mt:mul_num(10)
print(mt.num)
-- mt.div_num(20) will be wrong
mt.div_num(mt, 10)
mt:div_num(10)
print(mt.num)
return mt