それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Rubyで文字列の数字整形(左寄せ・右寄せ)

ruby で文字列を右寄せ左寄せしたいとき

>> print (1..10).map{|e| e*100}.map{| e| (""+e.to_s).rjust(5) }.join("\n")
 ¥100
 ¥200
 ¥300
 ¥400
 ¥500
 ¥600
 ¥700
 ¥800
 ¥900
¥1000

なんのために rjust / ljust あるのかな。

sprinfでいいじゃんね

 print (1..10).map{|e| e*100}.map{|e| sprintf("% 5s", ""+e.to_s) } .join("\n")
 ¥100
 ¥200
 ¥300
 ¥400
 ¥500
 ¥600
 ¥700
 ¥800
 ¥900
¥1000

さらにいえば、String#%( 一見すると演算子)でパパっとかけるのでsprintfすら要らない

String#%でなんとか、なるんだけど、、、もうここまで来ると・・初見さんお断り臭が半端ないわ。

>> print (1..10).map{|e| e*100}.map{|e| "% 5s" % (""+e.to_s) } .join("\n")
 ¥100
 ¥200
 ¥300
 ¥400
 ¥500
 ¥600
 ¥700
 ¥800
 ¥900
¥1000

なんだろう。俺つえぇ的なものを感じる

でも、String#% は初見殺し。使うなら、rjust のほうが読みやすいかも

そういういみでは rjust/ljust/center は意図が明確なので、読みやすいコードになるよね。

% は確かにスッキリ書けるんだけど、、、、初見殺し

ソースコードがドキュメント」「流れるようなインタフェース(死語?)」としてコード書くなら

やっぱりrjust ljust の方がいいとなるわけですね。

まぁPythonとかの言語の人にはむしろ読みやすいのかもしれない。