Ruby Tips!

RubyのTipsを紹介します

オブジェクトを複製する

オブジェクトを複製するにはObject#dupObject#cloneを使う。Object#cloneはオブジェクトの内容だけでなく特異メソッドなどもコピーする。一般的にはObject#dupで十分だ。以下は文字列を複製する例である。

str = "sample string"
def str.singleton_method; end
str.taint
str.freeze

p str #=> "sample string"
p str.respond_to?(:singleton_method) #=> true
p str.tainted? #=> true
p str.frozen? #=> true

str2 = str.dup
p str2 #=> "sample string"
p str2.respond_to?(:singleton_method) #=> false
p str2.tainted? #=> true
p str2.frozen? #=> false

str3 = str.clone
p str3 #=> "sample string"
p str3.respond_to?(:singleton_method) #=> true
p str3.tainted? #=> true
p str3.frozen? #=> true