gpt4 book ai didi

ruby - Ruby 中命名空间函数的最佳实践? (新手问题)

转载 作者:数据小太阳 更新时间:2023-10-29 06:44:20 26 4
gpt4 key购买 nike

(StackOverflow 告诉我这个问题是“主观的,可能会被关闭”……好吧,无论如何我都会试一试)

我正在编写一堆辅助方法(用于 TextMate 包),我希望(并且我需要)将它们整齐地命名空间。

这些方法实际上只是函数,也就是说,它们不会对自身作用域之外的任何东西进行操作,因此并不真正属于某个类。没有什么需要实例化。

到目前为止,我一直在这样做,而且效果很好

module Helpers::Foo
module_function
def bar
# ...
end
end
Helpers::Foo.bar # this is how I'd like to call the method/function

但是这样会更好吗:
1. 跳过module_function并将方法/函数声明为 self.* ?
2. 还是声明类而不是模块会更好?
3. 或使用class << self (在模块或类中)?
4. 还是完全不同的东西?

我知道这是一个非常开放的问题,但我真的只是想听听人们在做什么。

最佳答案

我比较喜欢

module Foo
def self.bar
"bar"
end
end

Foo.bar #=> "bar"

module Foo
def Foo.bar
"bar"
end
end

Foo.bar #=> "bar"

但可能倾向于前者,我认为 self. 确实是描述性的。

编辑:阅读评论后,我提出了第三个选项,我更喜欢它以提高可读性。从技术上讲,我认为这将被定义为扩展 Eigen 类中包含的方法。

module Foo
module ClassMethods
def baz
"baz"
end
end
extend ClassMethods
end

Foo.baz #=> "baz"

关于ruby - Ruby 中命名空间函数的最佳实践? (新手问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4830374/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com