我想在每行开头用行号打印出数组中的值.我想更改间距以确保值垂直排列,而不管数组的大小.
@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}"
}
Run Code Online (Sandbox Code Playgroud)
产量
#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
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道是否有更好的方法来做到这一点?
您正在寻找String#ljust:
index_size = @lines.size.pred.to_s.size
@lines.each_with_index do |line, index|
puts "##{index.to_s.ljust(index_size)} #{line[:text]}"
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |