适用于调用自我方法的Ruby公约

时间:2017-03-27 19:57:16

标签: ruby module naming-conventions self

我对命名约定有很快的疑问。在下面的示例中,我有一个我想要包含的模块,但只希望顶部函数可访问。我使用self来达到这个目的,但是我想知道在每个自我功能之前调用自我是否合适,或者我是否排除了它?

module MyMod
  def call_all_functions
    first_function # should this be self.first_function?
    second_function # should this be self.second_function?
  end

  def self.first_function
  end

  def self.second_function
  end
end

1 个答案:

答案 0 :(得分:2)

如果您只想在项目的其他位置使用第一个功能,则可以执行以下操作:

module MyMod
  def self.call_all_functions
    first_function
    second_function
  end

  def first_function
  end

  def second_function
  end
end

如果您不打算再次使用first_functionsecond_function,最好这样做:

module MyMod
  def self.call_all_functions
    first_function
    second_function
  end

private

  def first_function
  end

  def second_function
  end
end

这里的私有功能使这些功能只能通过这一个文件访问。