美文网首页
Lua中的self

Lua中的self

作者: 正谦 | 来源:发表于2019-10-08 11:05 被阅读0次

Lua中可以使用“:”和“.”来定义、调用函数,区别是:

  • 使用“:”定义的函数,默认接收第一个参数为self;
  • 使用“:”调用函数,默认传入调用者为第一个参数;
  • 使用“.”定义和调用函数,不会额外接收和传入self参数;
local A = {}
A.func1 = function(...)
    print("self is ", self, " args: ", ...)
end
A.func1("123")      -- self is nil  args: 123 
A:func1("123")      -- self is nil  args: table:0x2815926c0 123

function A.func2(...)
    print("self is ", self, " args: ", ...)
end
A.func2("123")      -- self is nil  args: 123 
A:func2("123")      -- self is nil  args: table:0x2815926c0 123

function A:func3(...)
    print("self is ", self, " args: ", ...)
end
A.func3("123")      -- self is 123  args: 
A:func3("123")      -- self is table:0x2815926c0  args: 123

一般情况下用“:”定义和调用就好,特殊情况下需要手动指定self时用“.”传入self调用

相关文章

  • lua中的self

    lua编程中,经常遇到函数的定义和调用。我们有两种函数定义和调用的方法。一种是用属性的方式,另外一种是通过冒号的形...

  • Lua中的self

    Lua中可以使用“:”和“.”来定义、调用函数,区别是: 使用“:”定义的函数,默认接收第一个参数为self; 使...

  • Lua中的self

    Lua中可以使用“:”和“.”来定义、调用函数,区别是: 使用“:”定义的函数,默认接收第一个参数为self; 使...

  • 在lua中重写c++中的UFunction

    这里, 在lua中的self是table本身, 不是Userdata

  • lua中self的用法

    --冒号:在定义时省略了self--点号:在定义时不省略self 可以把点号(.)作为静态方法来看待,冒号(:)作...

  • Lua self

    . 调用时, 第一个参数需要传self :调用时,不需要传self

  • Lua语法-self:和self. 调用方法

    Lua语法-self:和self. 调用方法 实例方法使用self: 调用 全局静态方法使用self.调用 如...

  • lua 中 . 和 : 的区别

    lua 中 . 和 : 的区别首先在lua中使用“:”定义的函数会自动传入一个名为self的变量,这个变量是隐含的...

  • Sublime Text 2 修改变量颜色

    需求分析 在 Lua 编程过程中,我们希望能够体验“所见即所得”的效果,即: 看到 this 或者 self 就知...

  • 9、lua中的self,点号,冒号的关系

    lua编程中,经常遇到函数的定义和调用,有时候用点号调用,有时候用冒号调用。 点号定义、点号调用 冒号定义、冒号调...

网友评论

      本文标题:Lua中的self

      本文链接:https://www.haomeiwen.com/subject/xjkbyctx.html