lua的运算符重载
lua真是很灵活,可以模拟很多其他语言的高级特性,今天学习了算术类的元方法这一块,在此记录。
everythingistableinlua
我觉得对table的运算术计算叫成运算符重载更合适
lua里有这几种运算可以重载
__add-->+
__mul-->*
__sub-->-
__div-->%
__unm-->负数
__pow-->幂
步骤是这样的
Set={}--普通表
localmt={}--元表
--建元表
functionSet.new(t)
localset={}
setmetatable(set,mt)
for_,linipairs(t)doset[l]=trueend
returnset
end
--重载方法
functionSet.union(a,b)
...
end
--从元表建新表
s1=Set.new{10,20,30,50}
s2=Set.new{30,1}
--给元表重定向运算符
mt.__add=Set.union
--执行计算
s3=s1+s2
这样即可对两个表执行并集运算了,可以自己打印结果看看
#end
相关推荐
mieleizhi0 2019-11-07
wbczyh 2019-11-02
choupiaoyi 2017-10-11
ephesians 2016-08-24
peterlee 2017-05-04
JnX 2010-03-26
wztwzt 2019-04-07
文山羊 2015-08-19
Winterto0 2017-08-27
HeyShHeyou 2019-04-26
小金屋 2015-06-01
uglygirl 2015-05-28
chenmingwei 2009-09-04
dgdafas 2009-08-31
ARTELE 2009-08-12
fundebug 2019-03-29
PHP100 2019-03-27