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 函数将返回我们传递给它的第二个参数。
输出结果
1011
现在,让我们使用冒号运算符而不是前一个示例中的点运算符。
示例
考虑下面显示的例子 -
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: 0x232c91010
等等,什么?如何输出地址和10。让我解释一下,当我们使用冒号(:)操作符时,实际发生的是,而不是调用
ans = returnX:foo(10,11)
被调用的是
ans = returnX.foo(returnX,10,11)
因此我们将输出作为地址,因此在第二种情况下,当我们调用returnX:bar(10,11) 时,第二个参数将为 10,这就是我们得到的。
以上是 Lua 编程中. 和: 的区别 的全部内容, 来源链接: utcz.com/z/338856.html