由于某些原因,以下代码会生成一个具有重复值的集合。
我不确定数组在ruby中的唯一性是如何定义的,所以这可能是可以预期的?红宝石集不是唯一的
require 'set'
xs = [1, 2, 3]
xss = Set.new []
xs.each do |x|
xss.merge xss.to_a.map{|xs| xs.push x}
xss.add [x]
p xss
end
将打印
#<Set: {[1]}>
#<Set: {[1, 2], [1, 2], [2]}>
#<Set: {[1, 2, 3, 3], [1, 2, 3, 3], [2, 3], [1, 2, 3, 3], [2, 3], [3]}>
有什么不对?
编辑
更改xs.push x
到xs + [x]
将解决它。
什么是你想要做什么呢? –
@ sagarpandya82任意长度的组合 – hsinewu
所以你需要'#? –