由於某些原因,以下代碼會生成一個具有重複值的集合。
我不確定數組在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
所以你需要'#? –