[#954] Rational — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

23 messages 1996/10/30
[#955] Re: Rational — matz@... (Yukihiro Matsumoto) 1996/10/30

まつもと ゆきひろです.

[#968] Re: Rational 1996/10/31

けいじゅ@SHLジャパンです.

[ruby-list:930] Re: hajimemashite

From: matz@... (Yukihiro Matsumoto)
Date: 1996-10-30 02:20:45 UTC
List: ruby-list #930
まつもと ゆきひろです.

In message "[ruby-list:928] Re: hajimemashite"
    on 96/10/30, Itsuro Saito <saito@miv.t.u-tokyo.ac.jp> writes:
|
|斎藤@東大電子情報です.

|○日本語の2バイトコードに対応したクラスはありますか
|
|正規表現やlength等で2バイトコードに対応したのがあれば良いんですけどあ
|りますか.lengthぐらいなら自分で作ってもそれほどでもないのですけど.

Regexp(正規表現)がいちおうEUCとSJISに対応しています.JISには
対応していません.一応と言うのは(いわゆる)半角かなには対応し
ていないからです.

|○コマンドラインオプションの-Kcはどの処理で有効なのでしょうか

Regexpとパーザで有効です.-Keなどとすると全角の変数とかも使
えるようです.あまりテストされていないのでお勧めしませんけど.

|○Stringクラスでfreezeした文字列を変更しても例外が発生しない様ですが

perlなどとことなりrubyでは文字列は文字列オブジェクトへの参照
です.freezeは文字列オブジェクトをfreezeするもので変数を
freezeするものではありません.

|--------------------------------------------------
|#!/usr/local/bin/ruby
|str = "test1\n"
|str.freeze
|str = "test2\n"
|--------------------------------------------------

というプログラムでは変数strの指している変数オブジェクトが
"test1\n"から"test2\n"に変わったことを意味します.文字列の内
容の変更とはchop!などで発生します.

--------------------------------------------------
#!/usr/local/bin/ruby
str = "test1\n"
str.freeze
str.chop!
--------------------------------------------------

ではどうでしょう.

|○IOクラスでgetcをした時にEOFに到達した時に例外は発生するのか

互換性のためgets/getcは例外を発生させません.一方,
readline/readcharは例外を発生させます.例外が欲しい時にはこ
ちらを使ってください.

|挙げ足的な事ですみません.getcでEOFに達しても例外は発生していないので
|すが,これはman-jp/IO.htmlのgetcの項目で"例外nil"となっているのは"nil"
|の間違えでと言う事ですよね.

そうです.ごめんなさい.

|基本的にはネストになっているのでネストの構造を読み込む方法があればそれ
|で解決するかとは思うんですけど,正規表現ではネストの構造は取り出せそう
|にないですし….なにか良い方法は無いのでしょうか.

簡単なパーザのクラスがあれば良いなとは昔から思っています.が,
思っているだけでなかなか進みません.現状ではやはりgetcで一文
字ずつ読み込んで来るしかないようです.

                                まつもと ゆきひろ /:|)

In This Thread