RuboCop 在使用 'Hash.new' 时抱怨

RuboCop complains when using 'Hash.new'

RuboCop 在我使用 Hash.new 时抱怨,并建议我改为使用哈希文字。有没有办法让 RuboCop 忽略 Hash.new 的使用?更具体地说,我可以编辑我的 .rubocop.yml 配置以允许使用 Hash.new 而不提出任何投诉吗?

您可以在 rubocop.yml 文件中禁用 Rubocop::Cop::Style::EmptyLiteral cop:

# .rubocop.yml
Style:
  EmptyLiteral: false

或者如果您只想忽略某一行:

hsh = Hash.new # rubocop:disable Style/EmptyLiteral

根据 Ruby Style Guide 文字数组和散列创建符号是首选,除非您需要将参数传递给它们的构造函数。因此,要遵循指南,您应该使用 hash = {} 而不是 hash = Hash.new.

我会遵循指南中的约定,但如果您不想,您可以禁用 Style/EmptyLiteral cop,就像本地或全局的任何其他警察一样。

全球

添加给你的rubocop.yml文件:

Style:
  EmptyLiteral: false

本地

# rubocop:disable Style/EmptyLiteral
hash = Hash.new 
# rubocop:enable Style/EmptyLiteral

或单行的简短版本:

hash = Hash.new # rubocop:disable Style/EmptyLiteral

有关如何配置 Rubocop 的更多信息,请查看 its documentation