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

时间:2018-01-23 22:46:34

标签: ruby rubocop

当我使用Hash.new时,RuboCop会抱怨,并建议我使用哈希文字。有没有办法让RuboCop忽略Hash.new的使用?更具体地说,我是否可以修改.rubocop.yml配置以允许使用Hash.new而不会引起任何投诉?

2 个答案:

答案 0 :(得分:3)

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

# .rubocop.yml
Style:
  EmptyLiteral: false

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

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

答案 1 :(得分:1)

根据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的详细信息。