[#21115] ftpup with IIS — TADA Tadashi <sho@...>
ただただしです。
7 messages
2000/03/01
[#21131] RAA の License — Matsuo Hisanori <hisanori@...>
松尾です。
6 messages
2000/03/02
[#21140] extconf.rb on FreeBSD — NISHIKAWA <nyasu@...3web.ne.jp>
にゃすです。
7 messages
2000/03/02
[#21157] あったらうれしいメソッド to_n, to_n!, to_s! — ogino@...
荻野です。あったらうれしいメソッドということで書いてみます。
16 messages
2000/03/03
[#21158] Re: あったらうれしいメソッド to_n,to_n!, to_s!
— 中村暁史 Nakamura Akifumi <BXQ04723@...>
2000/03/03
[#21167] Re: あったらうれしいメソッド to_n, to_n!, to_s!
— matz@... (Yukihiro Matsumoto)
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
荻野です。
[#21365] Re: 引数コピーとオブジェクト指向
— Matsuo Hisanori <hisanori@...>
2000/03/13
松尾です。
[#21370] Re: 引数コピーとオブジェクト指向
— TADA Tadashi <sho@...>
2000/03/13
ただただしです。
[#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
ただただしです。
[#21389] Re: 引数コピーとオブジェクト指向
— Matsuo Hisanori <hisanori@...>
2000/03/13
松尾です。
[#21173] TkSelection.own の使い方? — Noritsugu Nakamura <nnakamur@...>
13 messages
2000/03/03
[#21177] Re: TkSelection.own の使い方?
— Koji Arai <JCA02266@...>
2000/03/03
新井です。
[#21178] Re: TkSelection.own の使い方?
— Koji Arai <JCA02266@...>
2000/03/03
新井です。
[#21179] Re: TkSelection.own の使い方?
— Noritsugu Nakamura <nnakamur@...>
2000/03/04
[#21190] Re: TkSelection.own の使い方?
— Koji Arai <JCA02266@...>
2000/03/04
新井です。
[#21193] Re: TkSelection.own の使い方?
— Noritsugu Nakamura <nnakamur@...>
2000/03/05
[#21186] 文字列の二進数への変換 — ishihara-k@...3.tiki.ne.jp (Hiroki Ishihara)
文字列クラスには hex と oct というメソッドはありますが、
4 messages
2000/03/04
[#21196] cgi.rb で例外が発生 — RIO-T <rio-t@...>
はじめまして、高石と申します。
7 messages
2000/03/05
[#21233] rdindex — rubikitch <rubikitch@...>
るびきちです。
6 messages
2000/03/07
[#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
なかだです。
[#21354] Re: raise non-Exception object
— Kenichi Komiya <kom@...3.rim.or.jp>
2000/03/12
[#21358] Re: raise non-Exception object
— matz@... (Yukihiro Matsumoto)
2000/03/12
まつもと ゆきひろです
[#21397] Re: raise non-Exception object
— Kenichi Komiya <kom@...3.rim.or.jp>
2000/03/13
[#21355] Re: raise non-Exception object
— matz@... (Yukihiro Matsumoto)
2000/03/12
まつもと ゆきひろです
[#21300] media watch 2000.03.08 — Noritsugu Nakamura <nnakamur@...>
11 messages
2000/03/10
[#21323] Re: media watch 2000.03.08
— Hideto ISHIBASHI <s34204@...>
2000/03/11
石橋秀仁です。
[#21301] date2 の修正 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
15 messages
2000/03/10
[#21384] ruby 1.4.4 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
35 messages
2000/03/13
[#21454] Re: ruby 1.4.4
— Satoshi Nojo <nojo@...>
2000/03/15
Yukihiro Matsumoto さんは書きました:
[#21403] Re: ruby 1.4.4
— Wakou Aoyama <wakou@...>
2000/03/14
青山です。
[#21461] Re: ruby 1.4.4
— Minero Aoki <aamine@...>
2000/03/15
あおきです。
[#21626] Re: ruby 1.4.4
— Wakou Aoyama <wakou@...>
2000/03/24
青山です。
[#21635] Re: ruby 1.4.4
— Minero Aoki <aamine@...>
2000/03/26
あおきです。
[#21648] Re: ruby 1.4.4
— Wakou Aoyama <wakou@...>
2000/03/27
青山です。
[#21400] 式の中で変化する変数の値 — Kazuhiro Nishiyama <nishiyama@...1.tiki.ne.jp>
Rubyでは変数の値が前から見ていってその時点の値になっているのは
5 messages
2000/03/13
[#21442] 配列内のソート — Takayuki Tanaka <tanaka@...>
こんにちは Tanです。
16 messages
2000/03/15
[#21444] Re: 配列内のソート
— 市川 裕隆 <hirotaka.ichikawa@...>
2000/03/15
市川 as Tanukiです。
[#21449] Re: 配列内のソート
— IKARASHI Akira <ikarashi@...3.dion.ne.jp>
2000/03/15
五十嵐です。
[#21475] SJIS 文字列での問題 — Kenji Nagamatsu <knaga@...>
こんにちは、永松と言います。
5 messages
2000/03/16
[#21480] RD 事始め — rubikitch <rubikitch@...>
るびきちです。
7 messages
2000/03/16
[#21481] IO#method for read data from stream — ARIMA Yasuhiro <fit0298@...>
有馬です。
12 messages
2000/03/16
[#21484] Re: IO#method for read data from stream
— Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp>
2000/03/16
越水です。
[#21537] racc 0.13.0 — Minero Aoki <aamine@...>
あおきです。
6 messages
2000/03/19
[#21538] Project Apollo — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです。Apollo について。
13 messages
2000/03/19
[#21553] Re: Project Apollo
— 中村暁史 Nakamura Akifumi <BXQ04723@...>
2000/03/20
[#21557] <RE =~ target> and <target =~ RE> — ARIMA Yasuhiro <fit0298@...>
有馬です。
7 messages
2000/03/21
[#21570] Qt module for ruby — Nobuyuki Horie <horie@...>
堀江ともうします。
5 messages
2000/03/21
[#21583] ruby for Web — TAKAHASHI Masayoshi <maki@...>
高橋征義です。
27 messages
2000/03/22
[#21584] Re: ruby for Web
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/03/22
なひです.
[#21594] Re: ruby for Web
— "NAKAMURA, Hiroshi" <nakahiro@...>
2000/03/23
なひです.
[#21586] squid log 時刻変換 — Yamada Kenji <kyamada@...>
8 messages
2000/03/23
[#21604] RDtool 0.6.0 pre4 — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
Toshです。
10 messages
2000/03/23
[#21611] Re: RDtool 0.6.0 pre4
— rubikitch <rubikitch@...>
2000/03/24
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
[#21720] Re: RDtool 0.6.0 pre4
— Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
2000/04/01
Toshです。
[#21728] Re: RDtool 0.6.0 pre4
— rubikitch <rubikitch@...>
2000/04/01
From: Toshiro Kuwabara <toshirok@yb3.so-net.ne.jp>
[#21649] net-1.1.10 — TAKAHASHI Masayoshi <maki@...>
高橋征義です。net/http 使いたおし中。
17 messages
2000/03/27
[#21655] Re: net-1.1.10
— Minero Aoki <aamine@...>
2000/03/27
あおきです。
[#21659] Re: net-1.1.10
— TAKAHASHI Masayoshi <maki@...>
2000/03/27
高橋征義です。
[#21664] Re: net-1.1.10
— Minero Aoki <aamine@...>
2000/03/27
あおきです。
[#21889] net/http
— TAKAHASHI Masayoshi <maki@...>
2000/04/14
高橋征義です。
[#21906] Re: net/http
— Minero Aoki <aamine@...>
2000/04/14
遅くなりました、あおきです。
[#21669] new version of mod_ruby & eRuby — Shugo Maeda <shugo@...>
前田です。
14 messages
2000/03/28
[#21681] Re: new version of mod_ruby & eRuby
— Wakou Aoyama <wakou@...>
2000/03/29
青山です。
[#21683] Re: new version of mod_ruby & eRuby
— Shugo Maeda <shugo@...>
2000/03/29
前田です。
[#21671] GoF's Flyweight Pattern — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋秀仁です。
10 messages
2000/03/28
[ruby-list:21302] Re: 引数コピーとオブジェクト指向
From:
土岐 仁謙 <toki@...>
Date:
2000-03-10 15:43:32 UTC
List:
ruby-list #21302
土岐です。
# ruby-listにメールを出すのはひさしぶりです。
# 修論に追われてたもんで...
{Date} Fri, 10 Mar 2000 22:03:09 +0900
{Subject} [ruby-list:21297] Re: 引数コピーとオブジェクト指向
{Message ID} <xnmg0tzq8ok.wl@nancy.coop.nagoya-u.ac.jp>
ogino@coop.nagoya-u.ac.jp wrote...
ogino> name = 'John'
ogino> :
ogino> john = Person.new (name.dup)
ogino> :
ogino> :
ogino> name.sub! (....)
このコードを見てふと気づいたことがあったので、
ちょっと自分なりにまとめてみました。
わたしはこの手のオブジェクトの状態を変化させるような
コードを書くとき、いつも次の様にしています。
name = 'John'
:
john = Person.new (name)
:
:
name = name.dup
name.sub! (....)
オブジェクトの参照を増やす所(Person.new (name))ではなくて、
オブジェクトの状態を変化させる手前(name.sub! (....))の所に
dupを入れているわけです。
普段はほとんど何も考えずに習慣的にこの様なコードを
書いてしまうのですが、なんでこう書くようになったのか
ちょっと自己分析してみると
1. ある変数の参照しているオブジェクが、他の変数からも
参照されているかどうかを知ることは一般的にはできない。
2. 状態が変化した後のオブジェクトを必要としているのは、
オブジェクトに破壊的な操作を実行している場所だけである。
3. 変数が参照しているオブジェクを複製して現在の状態を
抽出し、複製されたオブジェクトに破壊的な操作を加えるのが
最も確実で安全である。
と考えた結果のようです。
この方針だと、メソッドの操作がオブジェクトに対して
破壊的であるかどうかだけを知っていれば割と機械的に対処できます。
なので(少なくともわたしにとっては)あまり負担ではないです。
はじめからここまで詰めて考えていたわけではないんですけど、
変数の指す先にはオブジェクトがあって、
そのオブジェクトは他の変数からも参照されている可能性があって、
変数からオブジェクトへメソッド(メッセージ?)を送ると
オブジェクトが何らかのリアクションを起こして、
場合によってはオブジェクトの状態が変化するんだ...
といつも漠然と意識していたら、自然とこんな習慣が
身に付いてしまったように思います。
それで荻野さんが問題にされているカプセル化についてですが、
確かにインスタンス変数のオブジェクトが他の外部の変数と
共有されているとカプセル化が壊れるかもしれなくて
心配だというのも分かるんですが、
逆に共有されていることを利点として使いたい場合もあるし、
共有が必要無い場合は(少なくともわたしは)上で説明した方針で
今迄間に合ってきたので、あまり深刻に心配したことは無いです、
わたしの経験上。
# わたしの経験がどこまで一般的に適用できるか、というのは
# これはこれで問題ですけど(汗)
結局
ogino> したがって、ドキュメントをよく読み内部を把握してから使うか、または引数
ogino> に与えるときに複製を与えるなり、または変化させないように name.sub! で
ogino> はなく name = name.sub を使用するなりするべきだということですね。逆に
ogino> 他の人(または一年後の自分)につかってもらうことを想定するライブラリ内に
ogino> おいては dup をする必要は普通はない。それは利用者の責任である、と。こ
ogino> れを Ruby 流と呼ぶ?
こうゆうことなんですが、まあ割と機械的に対処できる(?)ので
使う側にそれほど負担にはならないよ、ということです。
--------------------------------------------------
土岐 仁謙 神戸大学物理高エネ研 M2
http://www.freedom.ne.jp/toki/