注册 登录
编程论坛 Lua论坛

self 用法

Metz 发布于 2018-10-06 17:23, 3705 次点击
 我知道 t:add(10)    -- 相当于 t.add(t,10)

   能帮忙解析一下这个10是什么含义吗?
1 回复
#2
Lua_Toby2018-11-07 21:16
就是个普通的参数传递嘛
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() 就是一个相同的调用啦
1