From: Itsuro Saito Date: 1996-10-30T05:47:32+09:00 Subject: [ruby-list:928] Re: hajimemashite 斎藤@東大電子情報です. > perl5にはオブジェクト指向機能もあるんですが,私の脳味噌では > 使いこなせません.やはり今までの機能に追加して(利用して)オブ > ジェクト指向機能を実装しようというのに無理があったような. perl5のオブジェクト指向機能をざっと見てみたのですが,最後に1を返す等の おまじないが多そうで,使ってみようという気になかなかなれません.既存の コードと組み合わせて使うには良いんでしょうけど,rubyを知ってしまった今 となっては一から書く気にはなれないです. > 隅から隅までしっているのですが,新しくrubyを使われた方はどう > いう印象を持っているのでしょうか. rubyを見た最初の印象は,これでCでなくても構造体(オブジェクト)が使える ようになった,と言うものです.Cで書いているとすぐに構造体を作りたがる ので,構造体(オブジェクト)が使えるというのは結構大きな要素でした. 全てがオブジェクトであるなど,ある程度慣れないと分かりづらい所もありま すが,一度分かってしまえば後は同じ事の繰り返しですし,トリッキーな事を しなくてもやりたい事が書けると言う意味でも,全体としては分かりやすい言 語ではあると思います. > FAQも揃っていませんし,なんでも質問してください. というお言葉に甘えていくつか質問させて下さい. ○日本語の2バイトコードに対応したクラスはありますか 正規表現やlength等で2バイトコードに対応したのがあれば良いんですけどあ りますか.lengthぐらいなら自分で作ってもそれほどでもないのですけど. ○コマンドラインオプションの-Kcはどの処理で有効なのでしょうか String等では関係無い様ですがファイル名などのためなのでしょうか. ○Stringクラスでfreezeした文字列を変更しても例外が発生しない様ですが -------------------------------------------------- #!/usr/local/bin/ruby str = "test1\n" str.freeze str = "test2\n" -------------------------------------------------- というプログラムを動かしてもエラーにならず,正常終了してしまいます.4 行目で代入した時点で例外が発生してエラーで終了すると思うのですがfreeze の使い方はこれであっているのでしょうか. ○IOクラスでgetcをした時にEOFに到達した時に例外は発生するのか 挙げ足的な事ですみません.getcでEOFに達しても例外は発生していないので すが,これはman-jp/IO.htmlのgetcの項目で"例外nil"となっているのは"nil" の間違えでと言う事ですよね. あと,これはrubyに限った事では無いのですが, -------------------------------------------------- title{ item-1 = "1", item-2 = "2", subtitle-a{ item-a1 = "a-1", item-a2 = "a-2" } subtitle-b{ item-b1 = "b-1", item-b2 = "b-2", subtitle-c{ item-c1 = "c-1", item-c2 = "c-2" } } } -------------------------------------------------- の様に書かれたファイルを読み込んで,上の構造をそのままクラスで表現した い(titleクラスの中にインスタンスとしてsubtitle-aクラスとsubtitle-bクラ スとitem-1,item-2があり,subtitle-aクラスのインスタンスの中にはインス タンスとしてitem-a1,item-a2があって…)のですが,このような構造を読み込 む時の定石はあるのでしょうか. 今の所getc等で最初から順に追っていってクラスを作っているのですがもうす こしましな書き方が無いものかと考えています. 基本的にはネストになっているのでネストの構造を読み込む方法があればそれ で解決するかとは思うんですけど,正規表現ではネストの構造は取り出せそう にないですし….なにか良い方法は無いのでしょうか. よろしくお願いします. ---------------------------------------------------------------------- Saito Itsuro E-Mail:saito@miv.t.u-tokyo.ac.jp ----------------------------------------------------------------------