就是个普通的参数传递嘛
local t = {}
funciton t:func2(param1)
print('hello world')
end
和
funciton t.func2(self,param1)
print('hello world')
end
和
funciton t.func2(param1,param2)
print('hello world')
end
都没什么区别
用了 : 来声明就是表示多占了一个参数位置 而且是第一个参数 这个参数 即使我写个self 它也只是个形参名字 你真正调用的时候 不是必须传 t 的自身 (但是做项目的时候 用self来表明参数 是因为 方法体里面会用到这个self来做特定的事情 想要正确执行就要传正确的参数而已)
调用的时候 不用管怎么声明的 用点和用冒号都可以调用:
t.func2() t:func2()
用冒号比用点 就是默认多传了一个参数( t 自身)而且是第一个参数
我们用t.func2(t) 和 t:func2() 就是一个相同的调用啦