From: Kazuhisa YANAGAWA Date: 1998-03-18T11:25:19+09:00 Subject: [ruby-list:7152] Re: each_char In message <199803180152.KAA12496@picachu.netlab.co.jp> matz@netlab.co.jp (Yukihiro Matsumoto) writes: > わたなべさんが scan を使う方法を提案しておられますが,別の方 > 法としては文字列を空パターンで split してそれにたいしてeach > を行う方法もあります. > > for c in line.upcase.split(//) > .. > end String#each_char っていうのはあってもいいですよね. デフォルトでは each_byte への alias にしておいて, jcode を require すると日本語を認 識するようになる, と. jcode の方の中身は scan でも split でも使えば いいし. 特別大きな問題はないと思うんですが, どうでしょう? ....古いメールを読んだ時に「String を ``文字列'' とするか ``バイト列'' とするか」とか「文字毎に繰り返すイテレータを入れるか入れないか」とい う議論を読んだ覚えがありますが, 結論を忘れてしまいました (^^; たしか 「String は基本的にバイト列で, 文字列としても扱える. jcode を require すると日本語を含む文字列として扱えるけど, それってちょっとい やだな」というようなものだったような. # ライブラリによってクラスの挙動が変わるのはともかく, クラスの意味が # 変わってしまうのはいやな感じ, というような. でもあった方が便利ですよね. # ....イテレータブロックに渡すものを何にしようか, という問題だったよ # うな気もしてきましたね. 一文字からなる文字列を渡すのか, Fixnum を # 渡すのか. Fixnum を渡すならどんな値を渡すのか. ちょっと, 困るかも. # $KCODE に合わせて Fixnum#chr が文字列を生成してくれれば直接コード # に対応する Fixnum を渡す事にして全て収まる? =========================================================================== 柳川 @ 情報システム学研究科 . 電気通信大学 katze@yuba.is.uec.ac.jp March 18, 1998 Whatever is worth doing at all is worth doing well.