ruby クラスメソッドとインスタンスメソッドをミックスイン

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby クラスメソッドとインスタンスメソッドをミックスイン相关的知识,希望对你有一定的参考价值。

# will mix-in instance and class methods.
module SameModule
  def self.included(base)
    base.extend ClassMethods
  end

  module ClassMethods
    def foo(msg)
      puts msg
    end
  end

  # instance methods
  def foo(msg)
    self.class.foo(msg)
  end
end

class SameClass
  include SameModule

  foo "test1"

  def bar
    puts "bar"
    foo "test2"
  end
end

puts "----"
SameClass.foo "test3"
puts "----"
obj = SameClass.new
obj.foo "test4"
puts "----"
obj.bar

# => test1
# => ----
# => test3
# => ----
# => test4
# => ----
# => bar
# => test2

以上是关于ruby クラスメソッドとインスタンスメソッドをミックスイン的主要内容,如果未能解决你的问题,请参考以下文章