Metatable对象默认的操作方式-创新互联-成都快上网建站

Metatable对象默认的操作方式-创新互联

lua基础:http://www.jb51.net/article/55394.htm

成都创新互联公司主要从事成都网站建设、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务肥西,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

metatable学习:http://mobile.51cto.com/iphone-285892.htm

--定义2个表

a = {5, 6}  b = {7, 8}

--用c来做Metatable

c = {}

--重定义加法操作

c.__add = function(op1, op2)     for _, item in ipairs(op2) do        table.insert(op1, item)     end     return op1  end

--将a的Metatable设置为c

setmetatable(a, c)

--d现在的样子是{5,6,7,8}

d = a + b

至于__add这是MetaMethod,这是Lua内建约定的,其它的还有如下的MetaMethod:

__add(a, b)                    对应表达式 a + b
__sub(a, b)                    对应表达式 a - b
__mul(a, b)                    对应表达式 a * b
__div(a, b)                    对应表达式 a / b
__mod(a, b)                    对应表达式 a % b
__pow(a, b)                    对应表达式 a ^ b
__unm(a)                       对应表达式 -a
__concat(a, b)                 对应表达式 a .. b
__len(a)                       对应表达式 #a
__eq(a, b)                     对应表达式 a == b
__lt(a, b)                     对应表达式 a < b
__le(a, b)                     对应表达式 a <= b
__index(a, b)                  对应表达式 a.b
__newindex(a, b, c)            对应表达式 a.b = c
__call(a, ...)                 对应表达式 a(...)

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:Metatable对象默认的操作方式-创新互联
分享网址:http://kswjz.com/article/pohco.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流