-- 根据参数列表中的值创建一个新集合 function(l) local set = {} setmetatable(set,mt) for _,v inpairs(l) do set[v] = true end return set end -- 并集操作 functionSet.union(a, b) local retSet = Set.new{} -- 此处相当于Set.new({}) for v inpairs(a) do retSet[v] = trueend for v inpairs(b) do retSet[v] = trueend return retSet end
-- 交集操作 functionSet.intersection(a, b) local retSet = Set.new{} for v inpairs(a) do retSet[v] = b[v] end return retSet end
-- 打印集合的操作 functionSet.toString(set) local tb = {} for e inpairs(set) do tb[#tb + 1] = e end return"{" .. table.concat(tb, ", ") .. "}" end