使用 Ruby 方法名称表达意图的最佳做法是什么?
例如,使用以下内容:
class Formula
attr_accessor :steps
def find_step(key)
@steps.find {|s| s.name == key }
end
end
和:
class Step
attr_accessor :name
end
Formula#find_step
方法需要一个 Symbol
,但它可以很容易地接受一个 Step
类型并检查名称是否匹配。我可以重命名方法 find_step_by_name
但仍然不清楚 name
是什么。它是字符串还是符号?或者它是否匹配 Step
对象上的名称?
编辑:标记为 Does Ruby support type-hinting? 的可能重复项我不是在问这是否可能,我是在问一个关于命名的问题。
在Ruby2.1之后,我认为下面的解决方案很好。
def find_by(name:)
# and you can check if type of name is what you expect as you need.
# But that is not duck-typingy.
end
我是一名优秀的程序员,十分优秀!