我最近一直在使用Reek来重构我的代码,其中一种气味DuplicateMethodCall正在数组和哈希查找中被调用,例如多次调用时array[1]
。hash[:key]
所以我想知道多个数组或哈希查找是否如此昂贵,我们应该将它们存储在一个变量中而不是直接调用它们,这是每个人根据我的经验所做的。
我会毫不犹豫地将多个对象方法调用(特别是如果它是一个 DB 调用)存储在一个变量中,但是为数组和哈希查找这样做感觉有点过头了。
例如,我会收到一段代码的警告:
def sort_params
return [] if params[:reference_letter_section].nil?
params[:reference_letter_section].map.with_index(1) do |id, index|
{ id: id, position: index }
end
end
但我觉得存储params[:reference_letter_section]
在自己的变量中太多了