ruby module里的self

Posted 懒虫哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby module里的self相关的知识,希望对你有一定的参考价值。

创建: 2018/03/15

 

都知道def self.方法名 来定义类方法

class SampleClass
    def self.class_method1 # 类方法定义 1
        ...
    end

    class << SampleClass # 类方法定义 2
        def class_method2
            ...
        end
    end
end

 

那么如果在实例方法里呼出模块内其他方法, 也就是 send 该怎么写呢。

经测试,  self.send 方法名 # 字符串或者符号都可以  即可

 

module SampleModule
  extend ActiveSupport::Concern
  SampleModuleSelector = [
    :sayHello,
    :sayGoodbye
  ]

  included do
  end

  def runner
    self.send SampleModuleSelector[0]
    self.send SampleModuleSelector[1]
  end

  private
    def sayHello
      puts %Q(UUID sayHello)
    end

    def sayGoodbye
      puts %Q(UUID sayGoodbye)
    end
end

 

以上是关于ruby module里的self的主要内容,如果未能解决你的问题,请参考以下文章

ruby基础知识之 class&module

ruby self.included用法

ruby

ruby 我感兴趣的库中的代码片段

ruby 中的 class << self 及其方法

Ruby 类 << Klass = Module::new