こんばんは,久野です。お返事ありがとうございます。 on Mon, 26 Feb 2001 02:27:16 +0900 in [ruby-list:28278] Re: [Q] jcode の局部適用 <983119922.875498.8619.nullmailer / ev.netlab.zetabits.com> matz / zetabits.com (Yukihiro Matsumoto) wrote: > |表題の通りの質問ですが,jcode.rbの機能を局部的に適用すること > |はできるでしょうか。文字列処理を一時的に日本語に対応させ,そ > |の前後では日本語を意識しない処理を行ないたい(ことだって長い > |人生にはあるかも知れない)のです。 > > 現状ではできません。jcodeはproof-of-concept程度のもので、そ > んなにレベルの高い実装ではありませんので。開発中のM17N Ruby > ではjcodeは不要になりますし、文字列単位でエンコーディングが > 指定できます。これもまた完成度は低いのですが、長い人生が終わ > るまでにはなんとかしたいと思ってます。 分かりました。 しかし,以下のようなスクリプトで実験をしているうちに,疑問が 幾つか出てきました。 #!/usr/local/bin/ruby -Ke s1 = "松本" s2 = "硝" Original_String = String.clone require "jcode" puts s1.delete s2 # 日本語を意識した処理 s3 = Original_String.new("松本") String = Original_String puts s1.delete s2 # 日本語を意識した処理 puts s3.delete s2 # デフォルトの処理 s4 = String.new("松本") puts s4.delete s2 # デフォルトの処理 s5 = "松本" puts s5.delete s2 # 日本語を意識した処理 __END__ (1) jcodeでStringクラスの動作を変更すると,それ以前に作成し たStringクラスのインスタンスにも影響が及ぶのに, String = Original_String とすると,それ以降の String#new にしか影響が及ばないのは なぜ? (2) String#new("") と "" はどちらもStringクラスのインスタン スを返すはずなのに,s4とs5の結果が異なるのはなぜ? ご解説いただければ嬉しく思います。 ------------------------------ 久野 宏三 (HISANO Kozo) mailto:mail / seventhree.com ------------------------------