clone -> object[permalink][rdoc] dup -> object オブジェクトの複製を作成して返します。 dup はオブジェクトの内容, taint 情報をコピーし、 clone はそれに加えて freeze, 特異メソッドなどの情報も含めた完全な複製を作成します。 clone や dup は浅い(shallow)コピーであることに注意してください。後述。 [EXCEPTION] TypeError: TrueClass, FalseClass, NilClass, Symbol, そして Numeric クラスのインスタンスなど一部の オブジェクトを複製しようとすると発生します。 obj = "string" obj.taint def obj.fuga end obj.freeze p(obj.equal?(obj)) #=> true p(obj == o