格式编号 - 优先于带注释的标记(如“%<foo>s”)而不是未注释的标记(如“%s”)(Rubocop)

Cla*_*ara 6 ruby ruby-on-rails rubocop

我有这行代码,Rubocop 抱怨

offset = -7
format('%.2i', offset)
Run Code Online (Sandbox Code Playgroud)

Rubocop 的消息是

rubocop:警告 C - 样式/%<foo>s格式字符串令牌:比未注释的令牌(如)更喜欢带注释的标记(如%s)。

但即使在阅读文档https://www.rubydoc.info/gems/rubocop/RuboCop/Cop/Style/FormatStringToken 中的解释时,我也无法使其合规。

代码的目标是在offset数字是一位数时添加 0,并且在数字已经有两位数时不添加任何内容。

我尝试了以下方法:

offset = -7
format('%.2{offset}', offset: offset)
Run Code Online (Sandbox Code Playgroud)

Ste*_*fan 11

要指定样式,您必须使用<offset>,而不是{offset}。正确的语法是:

format('%<offset>.2i', offset: offset)
#=> "-07"
Run Code Online (Sandbox Code Playgroud)

<variable_name>部分介于 %之间.2i