我正在打印每行開頭的行號數組中的值。我想要改變間距以確保數值垂直排列,而不管數組的大小如何。如何根據整數中的位數更改空格數?
@lines.each_with_index {|l,i|
newtext = l[:text]
space = ' ' * @lines.size.to_s.size
cur_space = i.to_s.size
(1..cur_space).each { space.chop! }
puts "\##{i}#{space} #{newtext}"
}
輸出
#0 blah
#1 blah
#2 blah
#3 blah
#4 blah
#5 blah
#6 blah
#7 blah
#8 blah
#9 blah
#10 blah
#11 blah
#12 blah
#13 blah
這工作,但我不知道是否有更好的方法來做到這一點?
似乎是最好的答案。如果你使用ruby2.4或更高版本,我會使用'@ lines.size.pred.digits.count' –