Is there a Ruby equivalent to the C++ std::setw(in

2019-06-03 02:41发布

问题:

I am outputting some text tables to a terminal and would like to be able to use something like the C++ std::setw() function to provide padding for my output rather than guessing at the number of spaces or tabs required. Before I go knock together something to do this, is there already a function or Ruby Gem which does this?

Std::setw() for those who need a few cobwebs flow out (like me) http://www.cplusplus.com/reference/iostream/manipulators/setw/

I am using Ruby 1.8 at present so a solution compatible with that would be preferable.

回答1:

It's not the same interface (so slightly different thinking), but if I understand the purpose correctly, I usually just use sprintf for this.

puts "%10s" % ["foo"]  # => "       foo"
puts "%-10s" % ["bar"] # => "foo       "