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,而这正是我们得到的。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP