names=clone,dup
visibility=public
kind=defined

--- clone -> Set
--- dup -> Set

集合を複製して返します。

dup は、集合の内容と taint 情報のみコピーします。
clone は、それに加えて、freeze 情報と特異メソッドをコピーします。
いずれも共通して、内部記憶として保持するハッシュもコピーしますが、
集合の要素そのものはコピーしません。

Ruby 1.9 の Set クラスでは、dup と clone に共通して、内部記憶として
用いるハッシュも含めて taint 情報をコピーします。
ただし、clone では内部記憶の freeze 情報はコピーされません。
このため、freeze された集合を clone した場合、生成された集合の要素は
変更可能である点に注意してください。

  s1 = Set[10, 20]
  
  s2 = s1.dup
  s2 << 30
  p s1 #=> #<Set: {20, 10}>
  p s2 #=> #<Set: {30, 20, 10}>

@see [[m:Object#clone]]

