格式数字 - 比未注释的标记(如 %s )更喜欢带注释的标记(如 %<foo>s )(Rubocop)

Format number - Prefer annotated tokens (like `%<foo>s`) over unannotated tokens (like `%s`) (Rubocop)

我有 Rubocop 抱怨的这行代码

offset = -7
format('%.2i', offset)

Rubocop 的消息是

rubocop: warning C - Style/FormatStringToken: Prefer annotated tokens (like %<foo>s) over unannotated tokens (like %s).

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

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

我尝试了以下方法:

offset = -7
format('%.2{offset}', offset: offset)

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

format('%<offset>.2i', offset: offset)
#=> "-07"

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