[#35592] String#center — Take_tk <ggb03124@...>

 仕様拡張のお願い。と言うほどのものでもないですが・・

33 messages 2002/07/20
[#35593] Re: String#center — Kazuhiro NISHIYAMA <zn@...> 2002/07/20

西山和広です。

[#35596] Re: String#center — Take_tk <ggb03124@...> 2002/07/20

たけ(tk)です。

[#35597] Re: String#center — Kazuhiro NISHIYAMA <zn@...> 2002/07/20

西山和広です。

[#35599] Rational#to_int ← String#center — Take_tk <ggb03124@...> 2002/07/21

たけ(tk)です。

[#35601] Re: Rational#to_int ← String#center — matz@... (Yukihiro Matsumoto) 2002/07/21

まつもと ゆきひろです

[#35618] new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹) 2002/07/23

けいじゅ@日本ラショナルソフトウェアです.

[#35624] Re: new mathn [Re: Rational#to_int ← String#center] — matz@... (Yukihiro Matsumoto) 2002/07/24

まつもと ゆきひろです

[#35628] Re: new mathn [Re: Rational#to_int ← String#center] — keiju@... (石塚圭樹) 2002/07/24

けいじゅ@日本ラショナルソフトウェアです.

[#35630] Re: new mathn [Re: Rational#to_int ← String#center] — matz@... (Yukihiro Matsumoto) 2002/07/24

まつもと ゆきひろです

[ruby-list:35633] String::freeze_mode

From: Take_tk <ggb03124@...>
Date: 2002-07-26 02:20:04 UTC
List: ruby-list #35633
たけ(tk)です

 初心者むけの解説で、「String の破壊的メソッドは予期しない結果をもたら
す可能性があるので、使わないようにしましょう」などと書いているうちに思っ
たのですが・・、

 新規に作成される文字列をすべて freeze するモード、というのがあると間違
いが少なくなるのではないかと思いました。

具体的には、

(1)String に @@freeze_mode というクラス変数を用意して、

 String.freeze_mode = true

で @@freeze_mode を変更する。

(2)@@freeze_mode =true の場合には、それ以後作成される文字列が原則とし
てすべて freeze される。String#melt、String::new(str,false)の場合を除く。

(3)String#melt で、その文字列の freeze されない複製を返す。破壊的メソッ
ドを使う場合には String#melt で複製を取り出してから使う。

(4)String.freeze_mode = false なら現在の仕様と同じ(デフォルト)。

(5)String::new(str, freeze=String.freeze_mode) とする。

** 文字列は String#new 以外で作られることが多いので、内部の改造が必要。

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武

In This Thread

Prev Next