我对命名约定有很快的疑问。在下面的示例中,我有一个我想要包含的模块,但只希望顶部函数可访问。我使用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
答案 0 :(得分:2)
如果您只想在项目的其他位置使用第一个功能,则可以执行以下操作:
module MyMod
def self.call_all_functions
first_function
second_function
end
def first_function
end
def second_function
end
end
如果您不打算再次使用first_function
或second_function
,最好这样做:
module MyMod
def self.call_all_functions
first_function
second_function
end
private
def first_function
end
def second_function
end
end
这里的私有功能使这些功能只能通过这一个文件访问。