lua算数类元方法操作两个table举例

这篇博客展示了如何在Lua中使用算数类元方法对两个Table进行加法、减法和乘法操作,详细解释了相关代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

--找到表中最后一个元素的下标
function tableMax(t)
	local count = 0
	for k,value in  ipairs(t) do
		if (count < k) then
			count = k
		end
	end
	return count 
end

local mt = {}

 mt. __add = function(mytable,newtable)
					for i = 1,tableMax(newtable) do
									  --table.insert(table1, pos, table2)
						table.insert(mytable,tableMax(mytable)+1,newtable[i])
					end
					return mytable
				end 
								
mt. __sub = function(mytable, newtable)
					local tmp = {}
					for k, v in ipairs(mytable) do
						tmp[k] = newtable[k] - mytable[k]
					end
					return tmp
				end
				
mt. __mul = function(mytable, newtable)
				local tmp = {}
				for k, v in ipairs(newtable) do
					tmp[k] = newtable[k] * mytable[k]
				end
				return tmp
			end
			
function showargTable(t)
	for key, value in pairs(t) do
		print("table["..key.."] = "..value )
	end
end



function main()
	mytable = {1,2,3}
	
	
	local secondtable = {20,40,50}
	setmetatable(mytable,mt)
	
	local mytable = mytable + secondtable
	--local mytable = secondtable - mytable
	--showargTable(mytable)

	local mytable =  mytable * secondtable 
	showargTable(mytable)
end

上面的代码表示的是操作两个table元素 进行加法、减法以及乘法运算

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值