Lua 编程中. 和: 的区别

Lua中的.(点)操作符用于调用对象的方法,是Lua中广泛使用的操作符。

Lua 中的:(冒号)运算符用于将不可见参数传递给正在调用的对象的方法。

让我们考虑一个例子,我们将有一个对象,其中存在两个函数,我们将尝试访问这些函数,首先使用点运算符,其次使用冒号运算符。

示例

考虑下面显示的例子 -

returnX = {foo = function(x,y) return x end, bar = function(x,y) return y end, }

ans = returnX.foo(10,11)

print(ans)

ans = returnX.bar(10,11)

print(ans)

在上面的例子中,我们只使用了点运算符,foo 函数将返回传递给它的第一个参数,而 bar 函数将返回我们传递给它的第二个参数。

输出结果

10

11

现在,让我们使用冒号运算符而不是前一个示例中的点运算符。

示例

考虑下面显示的例子 -

returnX = {foo = function(x,y) return x end, bar = function(x,y) return y end, }

ans = returnX:foo(10,11)

print(ans)

ans = returnX:bar(10,11)

print(ans)

输出结果

table: 0x232c910

10

等等,什么?如何输出地址和10。让我解释一下,当我们使用冒号(:)操作符时,实际发生的是,而不是调用

ans = returnX:foo(10,11)

被调用的是

ans = returnX.foo(returnX,10,11)

因此我们将输出作为地址,因此在第二种情况下,当我们调用returnX:bar(10,11) 时,第二个参数将为 10,这就是我们得到的。

以上是 Lua 编程中. 和: 的区别 的全部内容, 来源链接: utcz.com/z/338856.html

回到顶部