我正在尝试使用以下代码生成mac地址,但是robocop抛出警告
mac_address = format((1..6).map { '%0.2X' % rand(256) } .join(':'))
以下是警告,请提示我解决此问题
Favor `format` over `String#%`. (convention:Style/FormatString)
答案 0 :(得分:3)
只是改变
mac_address = format((1..6).map { '%0.2X' % rand(256) } .join(':'))
到
mac_address = (1..6).map { format('%0.2X', rand(256)) } .join(':')
答案 1 :(得分:0)
您问题中的代码示例不使用format
进行任何操作:
format((1..6).map { '%0.2X' % rand(256) } .join(':'))
format
的输出如下:
(1..6).map { '%0.2X' % rand(256) } .join(':')
=> "AB:CD:EF:01:02:03"
与做类似的事情一样
format("AB:CD:EF:01:02:03")
基本上不对字符串执行任何操作。
只需将其更改为:
(1..6).map { '%0.2X' % rand(256) } .join(':')
或者:
format("%02X:%02X:%02X:%02X:%02X:%02X", *(1..6).map { rand(256) })
或者:
format((['%02X'] * 6).join(':'), *(1..6).map { rand(256) })
由于混用format
和%
(尽管format
无所事事),所以您收到错误消息。 Rubocop可能希望您使用其中一个,而不是两者都使用。