タグ

ブックマーク / xibbar.hatenablog.com (2)

  • Ruby1.9をこれから使う人のためのM17Nまとめ

    仙台Ruby会議01で発表した内容のM17Nの部分をまとめました。 これから1.9を使う人の参考になればと思います。 重要なこと Stringのインスタンスが Encoding情報を持つようになりました 利用者は常にこのことを意識する必要があります。 1.9のStringには次のようなメソッドが追加されています String#encoding 現在のencodingを返します。 "牛タン".encoding => #<Encoding:UTF-8> String#force_encoding(encoding) データはそのままで、encoding情報のみ変更します。 バイト列自体は変更されません。 破壊的に変更されます。 "牛タン".force_encoding("EUC-JP") => "\xE7\x89\x9B\xE3\x82??\x83\xB3" String#encode(enc

    Ruby1.9をこれから使う人のためのM17Nまとめ
  • Rubyのプログラムでsprintfを見る機会がほとんどない理由 - 福島餃子Ruby親方

    私もCとかやっていたので、sprintfの便利さは痛感していたのですが、 今でもRubyでsprintfを使ってしまう時があります。 しかし、先日naruseさんに指摘されたのを機会にメモっておきます。 sprintfを多くのRubyistが使わない理由は必要ないからです。 Rubyにもsprintfはもちろん存在していて、以下のように使います。 str=sprintf("price:%5d(tax:%d)",4000,200) こんな感じで文字列を生成できます。しかし、Stringには %というメソッドが存在していて、 str="price:%5d(tax:%d)"%[4000,200] このように書けてしまいます。%に渡す引数は1個である必要があります。 複数ある場合は配列を渡します。 つまり、 str="price:%5d(tax:%d)"%([4000,200]) と同じです。(あ

    Rubyのプログラムでsprintfを見る機会がほとんどない理由 - 福島餃子Ruby親方
  • 1