时间:2021-05-22
tb.print和tb:print的含义略微不同,:调用函数会多传递进去一个self进去,差不多相当于OOP里面的成员函数调用.
但是和OOP里面成员函数/非成员函数不同的是,lua里面的非成员函数.调用,他不是静态的.
tb对象有一个print function成员,当tb是nil的时候,你不能调用print成员的....在OOP里面,没有这么一回事,非成员函数是全局的.
例子代码:
复制代码 代码如下:
t = {x = 1}
t.foo = function(t)
print(t.x);
end
local a = {x = 2};
print(t.foo(a), t:foo(a));
输出:
复制代码 代码如下:
2
1
nil
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在上一篇文章(C调用lua函数)中,讲述了如何用c语言调用lua函数,通常,A语言能调用B语言,反过来也是成立的。正如Java与c语言之间使用JNI来互调,Lu
lua脚本Redis中使用lua脚本,我们需要注意的是,从Redis2.6.0后才支持lua脚本的执行。使用lua脚本的好处:原子操作:lua脚本是作为一个整体
Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性。对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通
Lua和其他很多语言一样,函数调用时参数列表被包裹在括号中:复制代码代码如下:print('HelloWorld')特别的情况是,如果函数调用时只有一个参数,并
1.Lua函数支持多返回值,但并不是每次调用函数返回的全部值都会被使用。有一条规则是只有当函数调用是表达式最后一个元素时,才会使用它的全部返回值。看代码:复制代