• 关于类名常量 at 2013年04月29日

    #4 楼 @chenge 哈哈,我刚写了个帖子,有个图,估计能看清楚一些。 http://www.cnblogs.com/baxiaopeng/archive/2013/04/29/3050497.html

  • 关于类名常量 at 2013年04月29日

    举个列子: class MyClass;end obj=MyClass.new 那么,obj 和 MyClass 都是对象,它们唯一的区别就是,obj 是变量,而 MyClass 是常量。 仅此而已。换句话说,就像类是对象一样,类名无非就是一个常量而已。 MyClass 是对象,所以它也有类,它的类就是 Class,而 Class 的 Class 就是它自己,Class 的 superclass 就是 Module,Module 的 superclass 就是 Object。Object 的 class 就是 Class。

  • 关于类名常量 at 2013年04月29日

    在 ruby 中,类也是一个普通的对象。

  • 一道 Ruby 水平自测题. at 2013年04月28日

    #46 楼 @zw963 我想这就是【约定优于配置】吧。:D

  • 一道 Ruby 水平自测题. at 2013年04月24日

    #9 楼 @gihnius 请教,为何执行 &Array 的时候,ruby 知道去找 Class#to_proc这个方法呢?ruby怎么知道Class里面有这么一个方法能把Array转换为proc?

  • 单件类就是要特意隐藏起来的。

  • 关于单件类,可以记住一个绕口令:对象的单件类的超类,是这个对象的类;类的单件类的超类,是这个类的超类的单件类。

  • Ruby class variable 求教 at 2013年04月24日

    这似乎是一个关于“作用域门”的问题。ruby 会在三个地方关闭前一个作用域,同时打开一个新的作用域:类定义、模块定义、方法。 当把 class << self 写在 class A 里面时,此时 ruby 关闭了 Object 的作用域门,打开了 class A 的作用域门,由于 A 里面定义了@@a,所以不会报错。如果把 class << self 写在 class A 外面,则此时上下文为 Object,而 Object 中没有定义@@a,所以会报错。换句话说:class << self 并不是作用域门。