Ruby module里的self

本文介绍Ruby中定义类方法的方式及如何在实例方法中调用模块内的其他方法。通过send方法可以灵活地实现这一目标。同时给出了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建: 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

 

转载于:https://www.cnblogs.com/lancgg/p/8575012.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值