[#139] ruby 0.97 available — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろ@トヨタケーラムです.
1 message
1996/02/13
[#145] Re: The black face. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろ@トヨタケーラムです.
1 message
1996/02/14
[#182] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:178] Re: DOS port
1 message
1996/02/20
[#184] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:181] Re: DOS port
1 message
1996/02/20
[#185] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:183] Re: DOS port
1 message
1996/02/20
[#196] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:183] Re: DOS port
1 message
1996/02/26
[#198] Re: DOS port — Kazuhiko Iwama <iwama@...>
■ [ruby-list:197] Re: DOS port
1 message
1996/02/26
[#201] Re: ruby for JPower — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろ@トヨタケーラムです.
1 message
1996/02/26
[ruby-list:194] TUTORIAL - singleton method
From:
matz@... (Yukihiro Matsumoto)
Date:
1996-02-26 01:15:10 UTC
List:
ruby-list #194
まつもと ゆきひろ@トヨタケーラムです. singleton methodってのは文中にある「特異メソッド」のことです. それってなに? っていう話は読んでみてください. -- 特異メソッド インスタンスの挙動はそのクラスが決めているのだが,ある特定の インスタンスだけがもつ振舞いというのもありえる.通常ならその インスタンスのためだけにサブクラスを作ったりするのだが,ruby なら,そんなことをしなくても,ある特定のインスタンスにだけメ ソッドを追加することができる. ruby> class SingletonTest ruby| def size ruby| print "25\n" ruby| end ruby| end SingletonTest ruby> test1 = SingletonTest.new #<SingletonTest:0xbc468> ruby> test2 = SingletonTest.new #<SingletonTest:0xbae20> ruby> def test2.size ruby| print "10\n" ruby| end nil ruby> test1.size 25 nil ruby> test1.size 25 nil ruby> test2.size 10 nil この例でtest1とtest2は同じクラスのインスタンスであるが, test2ではsizeというメソッドが再定義されているので,挙動が異 なる.このような特定のインスタンスに所属するメソッドを「特異 メソッド」と呼ぶ. 特異メソッドの使われ方だが,たとえばGUIのボタンのように押さ れた時の挙動がひとつひとつ異なる時に,ボタンを押された時に実 行されるメソッドを再定義する,などということも考えられる. 特異メソッドは別にrubyだけのオリジナルじゃない.珍しいのは確 かだけど.rubyの他に特異メソッドを持っているのはCLOSやDylan などがある.中にはSelfやNewtonScriptのように特異メソッドしか 持たないものもある.そういう言語をプロトタイプベースという.