From: sinara@... Date: 1997-01-06T18:07:26+09:00 Subject: [ruby-list:1598] Re: jchop 原です。 > わたなべです. おめでとう. > > chop の日本語版を作ってみました. > > これを作っててわかったんですが, /./ って日本語の第 1 バイト > 目にはマッチしないんですね(たとえば "あ"[0] とか). というわ > けで nil かどうか調べてます. 単純に self =~ sub!(/.$/, '') > にしてないのは "\r" のためです. "\r" ではなくて "\n" ですよね? ruby で "あ"[0] =~ /./ が偽になるとは知りませんでした。serow 氏の jperl では 真になります。 もともと日本語の構造を持っていることを前提にすれば、 sub!(/(.|\n)$/, '') でもいいわけですよね。 > #やっぱり nil.size は許されない? 最近、「メソッドが nil に対して用意されていない事で例外が起こる」 という事が、ずいぶん便利に思えてきました。この例外が起こらない様 にプログラムを書くことで、論理がすっきりするみたいです。例えば > self =~ /(.)$/ > if $1 != nil && $1.size == 2 > original_chop! > end は if self =~ /(.)$/ if $1.size == 2 original_chop! end end あるいは if self =~ /(.)$/ && $1.size == 2 original_chop! end と書くとか。Perl 書きにはまどろっこしい事もありますが。 ---===-=-=-=-=-=-=-=-=======--=-=-=-==-=-===-=-=-=-=-=-=--=-==-=-- Shin-ichro Hara(Nagaoka Univ.of Tech.)