美文网首页Lua
lua中的self

lua中的self

作者: 雨幻逐光 | 来源:发表于2018-11-20 21:34 被阅读0次

lua编程中,经常遇到函数的定义和调用。我们有两种函数定义和调用的方法。一种是用属性的方式,另外一种是通过冒号的形式(其实也是属性)。只不过用冒号形式申明的函数默认会有一个参数self。self指向本身(表)。下面举例说明:

shape = {side = 4}
function shape.set_side(shape, side)
    shape.side = side
end

function shape.print_area(shape)
    print(shape.side * shape.side)
end

print(shape.side)
shape.set_side(shape, 5)
print(shape.side)
shape.print_area(shape)

上述运行结果是:

4
5
25

上面是用“ . ”来定义和访问函数的方法。下面同样用“ :”来实现同样功能的改写如下

shape = {side = 4}
function shape:set_side(side)
    self.side = side
end

function shape:print_area()
    print(self.side * self.side)
end

print(shape.side)
shape:set_side(5)
print(shape.side)
shape:print_area()

运行结果和上面例子一样:

4
5
25

从上面两个例子我们可以看出:冒号定义和冒号调用其实跟上面的效果一样,只是把第一个隐藏参数省略了。而self则是指向调用者自身。
当然,我们也可以用点号“ . ”来定义函数,冒号“ :”来调用函数。或者冒号定义点号调用。如下:

shape = {side = 4}
function shape.set_side(shape, side)
    shape.side = side
end

function shape.print_area(shape)
    print(shape.side * shape.side)
end

print(shape.side)
shape:set_side(5)
print(shape.side)
shape:print_area()

或者

shape = {side = 4}
function shape:set_side(side)
    self.side = side
end

function shape:print_area()
    print(self.side * self.side)
end

print(shape.side)
shape.set_side(shape, 5)
print(shape.side)
shape.print_area(shape)

上述运行结果:

4
5
25

相关文章

  • 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/hibxqqtx.html