语法与语法的应用的重要性

浏览:2163 发布日期:2016-06-09 02:23:44

以前看《Ruby元编程》这本书,里面说到环绕别名,大概是这样一组代码。

class String
    alias :real_length :length

    def length
        ....
    end
end

看完这一节,只是说real_length访问之前的String#length方法,现在通过String#length访问的是重写后的方法。

再次之前,我不知道alias关键字,看完这节,我似乎是懂了环绕别名,觉得很神奇。

后来,我阅读ActiveSupport源码,看到里面很多alias_method,百度之,知道它是Module的方法,和alias关键字类似。此时才知我对alias一无所知,忽略了语法的纯粹性和简单性。alias只是一个别名,所以如果不重写length方法,real_length, length是一样的。