美文网首页
Ruby 类方法

Ruby 类方法

作者: changsanjiang | 来源:发表于2017-10-21 11:08 被阅读16次

    方法的接收者是类本身(类对象)的方法称为类方法. (类方法的操作对象不是实例, 而是类本身).
    下面我们在 class << 类名 ~ end 这个特殊的类定义中, 以定义实例方法的形式来定义类方法.

    class HelloWorld
    end
    
    class << HelloWorld
      def hello(name)
        puts "#{name} said hello."
      end
    end
    HelloWorld.hello("John") #=> John said hello.
    

    除了上述方式以外, 还可以在类定义中追加类方法的定义. 在class语句中使用self时, 引用的对象就是该类对象本身. 因此我们可以使用 class << self ~ end 这样的形式, 在 class 语句中定义类方法. 这种方式很常见.

    class HelloWorld
      class << self
          def hello(name)
            puts "#{name} said hello."
          end
        end
      end
    

    除此以外, 我们还可以使用 def 类名 . 方法名 ~ end 这样的形式来定义类方法

    def HelloWorld.hello(name)
      puts "#{name} said hello."
    end
    

    同样的, 只要在类定义中, 上述形式就可以写成下述形式:

    class HelloWorld 
      def self.hello(name)
        puts "#{name} said hello."
      end
    end
    

    相关文章

      网友评论

          本文标题:Ruby 类方法

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