Wie Sie in Ruby kennen, können Sie tunwie zu tun Nummer String Suffix
"%03d" % 5
#=> "005"
"%03d" % 55
#=> "055"
"%03d" % 555
#=> "555"
so dass im Grunde Nummer wird „0“ Präfix für 3 String Orte haben
nur Möglichkeit Nummer zu tun, ist es fragen String Suffix auf ähnliche nette Weise? (bitte keine if-Anweisungen)
something 5
#=> 500
something 55
#=> 550
something 555
# => 555
wirklich schön, so Ihr Vorschlag für die Geschwindigkeit ist die log10-Lösung? etwas schwerer als die ljust Lösung erscheint mir – equivalent8
ich Speed-Test durchgeführt, ist die „ljust“ Lösung schnellste Lösung https://gist.github.com/3122349 (und sauberer :)) – equivalent8
gut Ihr Test ist nicht ganz fair zu die int-Version, da Sie keine Ganzzahl <-> String-Konvertierung testen. Überprüfen Sie dies: https://gist.github.com/3122511 - signifikanter Unterschied zugunsten von log10. + muss erwähnen, dass [] .max der Flaschenhals war, da es bei jeder Iteration ein neues Array-Objekt erzeugte. max Methode kann natürlich mit vielen besseren Leistung inlined wird :) – keymone