我是靠谱客的博主 虚拟书包,最近开发中收集的这篇文章主要介绍lua方法点(.)调用和冒号(:)调用区别:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

用.定义方法时object.func_name(arg1,arg2...),方法真正的函数签名形式为: object.func_name(arg1, arg2...)
用:定义方法时object:func_name(arg1,arg2...),方法真正的函数签名形式为: object:func_name(self, arg1, arg2...)

使用.调用方法时object.func_name(arg1,arg2...),真正调用方式为:object.func_name(arg1,arg2...)
使用:调用方法时object:func_name(arg1,arg2...),真正调用方式为:object:func_name(self, arg1,arg2...)

定义: object.func_name(arg1,arg2...)
调用: object.func_name(arg1,arg2...)

定义: object:func_name(arg1,arg2...)
调用: object.func_name(object, arg1,arg2...) 或 object:func_name(arg1,arg2...)

代码示例:

function inherit(base, derive)
derive = derive or {}
if type(base) == "table" then
setmetatable(derive, base)
base.__index = base
derive._super = base
end
return derive
end
local base = {x=1}
function base:print()
print("base class", self.y)
end
local derive = inherit(base,{y=2})
function derive:print()
print("derive class")
end
function derive:test()
self._super:print()
-- base class nil
self._super.print(self)
-- base class 2
self.print()
-- derive class
end
derive:test()

转载于:https://www.cnblogs.com/--xiaoyao--/p/6143357.html

最后

以上就是虚拟书包为你收集整理的lua方法点(.)调用和冒号(:)调用区别:的全部内容,希望文章能够帮你解决lua方法点(.)调用和冒号(:)调用区别:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部