首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用静态方法调用私有方法的Ruby类?

使用静态方法调用私有方法的Ruby类?
EN

Stack Overflow用户
提问于 2015-04-20 08:16:15
回答 2查看 17.6K关注 0票数 33

我有一个包含许多静态方法的类。每个方法都必须调用一个公共方法,但我尽量不公开后一个方法。将其设置为私有将只允许从类的自己的实例进行访问?Protected似乎也不能解决这里的问题。

如何隐藏do_calc以避免在静态上下文中被外部调用?(使它可以从前两个静态方法中调用。)

class Foo
  def self.bar
    do_calc()
  end
  def self.baz
    do_calc()
  end
  def self.do_calc
  end
end
EN

回答 2

Stack Overflow用户

发布于 2015-04-20 09:58:25

您可以使用private_class_method定义一个私有类方法,如下所示:

class Foo
  def self.bar
    do_calc
  end

  def self.baz
    do_calc
  end

  def self.do_calc
    #...
  end
  private_class_method :do_calc
end
票数 16
EN

Stack Overflow用户

发布于 2018-03-29 21:25:24

或者从Ruby 2.1开始:

class Foo
  def self.bar
    do_calc
  end

  private_class_method def self.do_calc
    #...
  end
end
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29737435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档