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とかの言語の人にはむしろ読みやすいのかもしれない。