首页 > 解决方案 > 格式号 - 首选带注释的标记(如 `%s`)在未注释的标记(如`%s`)上(Rubocop)

问题描述

我有这行 Rubocop 抱怨的代码

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

Rubocop 的信息是

rubocop: 警告 C - Style/FormatStringToken: 首选带注释的标记(如%<foo>s)而不是未注释的标记(如%s)。

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

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

我尝试了以下方法:

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

标签: ruby-on-railsrubyrubocop

解决方案


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

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

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


推荐阅读