
Ruby 中 Constant 和 Class 的關係
下班前龍哥說在 Mailing List 看到了一段 Code 很有趣。
1a = Class.new
2
3p a #=> #<Class:0x0000558d34f68b48>
4p a.name #=> nil
5
6B = a
7p a.name #=> 'B'
8
9C = a
10p C.name #=> 'B'
裡面 C = a
到底發生了什麼事情,是很值得討論的,因為有了線索是 rb_const_set
可以找到原因,所以就利用下班時間來讀看看這段。
關於前面的用法可以參考之前寫過的自由的 Ruby 類別來了解原因。