Ruby module里的self

创建: 2018/03/15

更新: 2018/03/22 把标题ruby首字母大写 

都知道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

 

posted @ 2018-03-15 17:45  懒虫哥哥  阅读(165)  评论(0编辑  收藏  举报