这个`%05i%'在Ruby中意味着什么?

时间:2014-01-03 08:56:51

标签: ruby

我看到这段代码随机数字。 '%05i'%做了什么?

list = []
(list << '%05i' % (rand(99999)+1)).uniq! while list.length < 5
number1, number2, number3, number4, number5 = list

2 个答案:

答案 0 :(得分:2)

'%05i'format specification,其中0表示用零填充,5表示宽度为5个字符,i表示参数为十进制数。然后%运算符applies将规范格式化为以下参数(在这种情况下为(rand(99999)+1))。

例如,

'%05i' % 1评估为"00001"

答案 1 :(得分:1)

它与printf中的C++有些相似。这意味着使用整数将字符串构造为5位,在左侧添加0%i是整数的格式说明符。 %i之间的5表示填充到5个符号,0%之间的5表示使用0填充。在字符串之后写入%以及要在字符串中使用的值。例如,'%05i' % 2'将为00002