読者です 読者をやめる 読者になる 読者になる

定数について考える

ruby
A = 3
class A
end
class B < A
end

これはどっちも実行時エラー。クラスはClassじゃなくちゃいけない。まああたりまえ。

A = Class.new
class A
end
class B < A
end

これは行ける。これもあたりまえ。

じゃあ、これは?

Class = 1
class A
end
class B < A
end

これも気になる。

Object = 1
class A
end
class B < Object
end

Class.newとclass構文の違いがまた一つ明らかになりました。

あと、こういうのもやってみた。

class A
end

class B < A
end

B.ancestors[1].object_id

A = 100

B.ancestors[1].object_id

定数周りはややこしいなぁ。(普通に使ってるぶんには、定数を何度も代入しないだろうから、良いんだろうけど。)