[#21157] あったらうれしいメソッド to_n, to_n!, to_s! — ogino@...

荻野です。あったらうれしいメソッドということで書いてみます。

16 messages 2000/03/03

[#21159] メソッドの入り口 — ogino@...

荻野です。もうひとつご指導ください。

93 messages 2000/03/03
[#21170] Re: メソッドの入り口 — Shin-ichiro Hara <sinara@...> 2000/03/03

原です。

[#21243] Re: メソッドの入り口 — keiju@... (石塚圭樹) 2000/03/07

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

[#21247] Re: メソッドの入り口 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/07

[#21267] 引数コピーとオブジェクト指向 (Re: メソッドの入り口) — Hideto ISHIBASHI <s34204@...> 2000/03/08

石橋秀仁です。

[#21272] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/08

[#21276] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — nobu.nakada@... 2000/03/09

なかだです。

[#21279] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — ogino@... 2000/03/09

oop未満の世界観の荻野です。

[#21282] Re: 引数コピーとオブジェクト指向 — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/03/09

越水です。

[#21285] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21293] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/10

松尾です。

[#21297] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21302] Re: 引数コピーとオブジェクト指向 — 土岐 仁謙 <toki@...> 2000/03/10

土岐です。

[#21371] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21374] Re: 引数コピーとオブジェクト指向 — TADA Tadashi <sho@...> 2000/03/13

ただただしです。

[#21365] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21280] raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp>

24 messages 2000/03/09
[#21283] Re: raise non-Exception object — nobu.nakada@... 2000/03/09

なかだです。

[#21315] Re: raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp> 2000/03/11

[#21342] Re: raise non-Exception object — nobu.nakada@... 2000/03/12

なかだです。

[#21384] ruby 1.4.4 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 2000/03/13

[#21442] 配列内のソート — Takayuki Tanaka <tanaka@...>

こんにちは Tanです。

16 messages 2000/03/15

[#21583] ruby for Web — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

27 messages 2000/03/22
[#21584] Re: ruby for Web — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/03/22

なひです.

[#21649] net-1.1.10 — TAKAHASHI Masayoshi <maki@...>

高橋征義です。net/http 使いたおし中。

17 messages 2000/03/27

[#21669] new version of mod_ruby & eRuby — Shugo Maeda <shugo@...>

前田です。

14 messages 2000/03/28

[ruby-list:21437] Re: 引数コピーとオブジェクト指向

From: Hideto ISHIBASHI <s34204@...>
Date: 2000-03-14 19:52:39 UTC
List: ruby-list #21437
石橋秀仁です。

Date: Tue, 14 Mar 2000 23:27:55 +0900
Message-ID: <200003141427.XAA02569@hoyogw.netlab.co.jp>

> ただただしです。

>  とりあえず、「dupだけが唯一の正解」というのは、自らの代案をもって撤回
> します。unfreezeがなくてホントによかった(笑)。

ぼくもdupとfreezeの両方に賛成。複数の解決策があってこそ"TMTOWTDI"ですね。

>  ほめられちった:-) initializeで例外をあげるということは、問題があれば
> Personインスタンス生成時に必ずこれを感知できるということです。これをや
> らない、もしくはPersonがnameを内部で勝手にfreezeをした場合、時間的・場
> 所的に遠く離れた場所で誰かがsub!をしてしまったらそのデバッグはかなりコ
> ストがかかることになります(製品が出荷されちゃったあととかね)。

>  あ、でもConstantStringは「書き換えた時に初めて例外が出る」ので、上に
> あげたような理由であまり親切じゃないと(私は)思います。

なるほど。たしかに親切度では劣りますね。うっかり。でも、次のような
使い方を想定したものでした。

require 'amstd/must'  # 青木さんの`must.rb'

class Person
  def initialize( name )
    # raise StandardError, "name must be fronzen." if not name.frozen?
    name.must ConstantString
    @name = name
  end
  attr_reader :name
  ...
end

実際、ConstantStringは``frozen String''に別名を与えただけですから。
クラスとしての名前があれば、OOA/Dするときに便利だと思いました。

+-------------------------------+
|   Person                      |
+-------------------------------+
|   name : String               |
+-------------------------------+
| + name() : String             |
| + rename( new_name : String ) |
+-------------------------------+

と書いていた`String'を、場合により`ConstantString'と書ける。
それだけ。くどいけど「人間のため」です。

ただし、Rubyには似合わない「型チェック」です。frozenなStringでも
例外になるので、あくまでクラス図を書くような開発のときにしか
有効じゃありませんけどね。

# ほんとうに静的型がほしければ、Javaでも使えばいいかもしれない。
# しかし、RubyでもStringだけは「純粋な属性」として使いたい。趣味の問題。

--
Hideto "rubyholic" ISHIBASHI

In This Thread