提问人:David Hempy 提问时间:3/23/2022 更新时间:3/23/2022 访问量:601
Rubocop Lint/DuplicateMethods -- 我应该保留哪个副本?
Rubocop Lint/DuplicateMethods -- which duplicate should I keep?
问:
Rubocop 报告:
app/models/transformer.rb:8:3: W: Lint/DuplicateMethods: Method Painter#last_color
is defined at both app/models/painter.rb:2 and app/models/painter.rb:5.
Painter 类如下所示:
class Painter
attr_accessor :last_color
alias last_color recent_color
def last_color
colors.last
end
end
哪一个真正被使用?访问器、别名还是方法?
答:
0赞
David Hempy
3/23/2022
#1
定义的方法优先于别名和访问器。
应删除访问器和别名,只保留类中定义的方法。
0赞
Prateek Choudhary
3/23/2022
#2
如果要定义一个公共方法,那么添加一个是多余的。last_color
attr_accessor
因此,如果你问哪个会在你运行时被执行,那么答案就是你定义的方法。Painter.new.last_color
您不需要去掉别名(假设您出于某种原因需要它)。
评论