From: Shin'ya Adzumi Date: 2001-07-06T12:08:10+09:00 Subject: [ruby-list:30490] Re: Object#dup あづみです。 Yukihiro Matsumoto wrote: > |Array,Hash などのサブクラスでインスタンス変数やクラス変数を宣言しても、 > |dup で複製ができないのは仕様でしょうか? > > dupはコンテンツの複製(表面的な複製)だから。インスタンス変数 > なども含めてコピーしたいときにはcloneを使います。 それは分かるのですが、親クラスが何かによって挙動が変わるのは変な気がします。 class Foo < 親クラス attr_accessor :foo end a = Foo::new # 必要なら引数も a.foo = "foo" a.dup.foo == "foo" になるクラス : Object,Exception,Module,Numeric,Integer,Range a.dup.foo == nil になるクラス : Array,Hash,IO,File,Regexp,String,Time # $ ruby -v # ruby 1.6.4 (2001-06-04) [i386-netbsd1.5] nil になってしまう条件って何なのでしょうか? 安積伸弥 adzumi@denpa.org