美文网首页
Ruby---def object.method和class <

Ruby---def object.method和class <

作者: HPD_黄霹雳 | 来源:发表于2017-11-24 14:57 被阅读0次

    单例方法的定义:

    object = Object.new
    def object.show
      p "show"
    end
    
    

    通过定义单例类来定义单例方法:

    object = Object.new
    class << object
      def show2
        p "show2"
      end
    end
    

    疑问:那这两个定义的方式是有什么区别?
    其实是有一个不同点:常量的解析方式。
    在单例类中定义的常量N,方法中是使用自己单例类中定义的常量。

    N = 2
    object = Object.new
    def object.show
      p N
      p "show"
    end
    
    class << object
      N = 3
      include Comparable
      def show2
        p N
        p "show2"
      end
    end
    
    object.show
    object.show2
    

    输出结果:

    2
    "show"
    3
    "show2"
    
    

    相关文章

      网友评论

          本文标题:Ruby---def object.method和class <

          本文链接:https://www.haomeiwen.com/subject/yyqfbxtx.html