From: Koji Arai Date: 1999-02-12T05:11:24+09:00 Subject: [ruby-dev:5034] Re: Integer#format 新井です。 >>> From: matz@netlab.co.jp (Yukihiro Matsumoto) >>> Date: 10 Feb 1999 15:15:31 +0900 >>> Subject: [ruby-dev:4965] Re: Integer#format > まつもと ゆきひろです > もうちょっとナニが欲しいのか詰めましょう.今出てるのは > > * 数値の各種表記(8進とか)に対応した文字列変換 > > * 1引数のprintfのalias まつもとさんは、この2つをわけて考えてたんですね。 私は、後者が欲しくて前者は後者の略記法程度に考えて ました。 いや、確かに必要なのは前者かも。十分な表現力を持っ た前者があれば事足りるようにも思えるので、こちらで 話を進めても構いません。ただ、複雑な引数をもったた くさんのメソッドを定義するよりはprintf式フォーマッ トが使えれば、実装が簡単でユーザが覚えることも少な くて済むのでいいかなとも思います。 一応、もう一度私の欲するところを書くと STDOUT << "hoge" << 10 << "\n" と書いた後16進表記が欲しくなって STDOUT << "hoge" << format("%x", 10) << "\n" と書くのは気持がねじ曲がる思いがします。でも、 STDOUT << "hoge" << 10.format("%x") << "\n" こう書けるとおちつきます。こういう感覚は変ですか? (もし、変なら根本から間違ってるので指摘してくださ い) もう少し言えば、Integer#hexがあったとして STDOUT << "hoge" << 10.hex << "\n" と書いた後、0xが欲しくなって STDOUT << "hoge0x" << 10.hex << "\n" とするのもちょっと…。じゃあ最初からprintf使えばい いじゃんって言われると。もう << は使わなくなるかも。 感覚的な説明で申し訳ないです。うまく言えないんです が、伝わりますか? # to_strが既にあるってのは知りませんでした。マニュ # アルには載ってないけど確かにソースには入ってる。 # 勉強しますです。