码迷,mamicode.com
首页 > 其他好文 > 详细

ruby module里的self

时间:2018-03-15 19:18:46      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:ruby   实例   ext   hello   pre   clu   extend   select   xtend   

创建: 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   实例   ext   hello   pre   clu   extend   select   xtend   

原文地址:https://www.cnblogs.com/lancgg/p/8575012.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!