Lua初学习 9-13

1:重新看看函数的调用 

           测试001:

a = {}
function a:Atest()
print("a print")
end

b = {}
function b:Btest()
print("b print")
end

a.Atest()
a:Atest()

b.Btest()
b:Btest()

================debug===============

a print
a print
b print
b print

 

测试002:

a = {}
function a:Atest(n)
print("a print",n)
end

b = {}
function b:Btest(n)
print("b print",n)
end

a.Atest(1)
a:Atest(1)

b.Btest(1)
b:Btest(1)

====================debug===============

a print nil
a print 1
b print nil
b print 1

Q:发现,用点方法调用方法,打印出来的是 nil ,但是我们已经传入了 1 

A:点方法调,传入的第一个参数是self(this.table),如果有多个参数,我们需要手动传入第一个参数this.table

     上面 b.Btest(1) Lua把我们传入的第一个参数 1,当作了this.table

     而:方法调,已经帮我们传入了self(有点像个语法糖),我们只需要传入其他剩余的参数就行了

 

 

另外的博客有比较清楚的解释

posted on 2016-09-13 09:42  tianjiuwan  阅读(106)  评论(0编辑  收藏  举报