[#47200] 今 def 文を実行すると、メソッドが定義されるクラス、にアクセスする方法 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
5 messages
2010/07/01
[#47211] [ANN] Ruby-1.9.1-p429 Windows用パッケージ リリース — arton <artonx@...>
artonです。
1 message
2010/07/05
[#47213] ruby-debug-ide-0.4.9.gemファイルのローカルインストール — eiichi_maekawa@...
8 messages
2010/07/06
[#47214] Re: ruby-debug-ide-0.4.9.gemファイルのローカルインストール
— keiichi matsunaga <ma2@...>
2010/07/06
On 7/6/2010 1:36 PM, eiichi_maekawa@mhi.co.jp wrote:
[#47215] Re: ruby-debug-ide-0.4.9.gemファイルのローカルインストール
— eiichi_maekawa@...
2010/07/06
松永さん
[#47221] Re: ruby-debug-ide-0.4.9.gemファイルのローカルインストール — Shozo Arai <shozoa@...>
=1B$B9S0f$G$9!#=1B(B
6 messages
2010/07/08
[#47222] Re: ruby-debug-ide-0.4.9.gemファイルのローカルインストール
— eiichi_maekawa@...
2010/07/09
荒井さん
[#47228] ANN++: Ruby-1.9.2-rc1 mswin32-100 のパッケージをリリース — arton <artonx@...>
artonです。
11 messages
2010/07/11
[#47245] Re: for文について
— kamuycikap <kamuycikap@...>
2010/07/21
こんばんは。
[#47246] Re: for文について
— Kiyotaka ATSUMI <kiyotaka@...>
2010/07/21
こんばんは.渥美です.
[#47229] [ANN] Ruby 1.9.2 RC2 is out — "Yuki Sonoda (Yugui)" <yugui@...>
-----BEGIN PGP SIGNED MESSAGE-----
5 messages
2010/07/11
[#47263] Structに型宣言/型変換を組み込みたい — "MISHIMA, Hiroyuki" <missy@...>
長崎大の三嶋と申します。
5 messages
2010/07/29
[ruby-list:47201] Re: 今 def 文を実行すると、メソッドが定義されるクラス、にアクセスする方法
From:
Nobuhiro IMAI <nov@...>
Date:
2010-07-01 17:28:50 UTC
List:
ruby-list #47201
いまいです。
From: "KISHIMOTO, Makoto" <ksmakoto_at_dd.iij4u.or.jp>
Date: Thu, 1 Jul 2010 18:43:13 +0900
> きしもとです
>
> obj = Object.new
> obj.instance_eval {
> def foo; end
> }
>
> のようなコードを実行すると、特異メソッドが定義されますが、このような、
> 「この文脈で def するとメソッドが定義されるクラス」(この例の場合
> inspect が #<Class:#<Object:0x00000801182d70>> のように
> なるような特異クラス)に簡単にアクセスする式はないのでしょうか?
>
> 以下のコードの、
>
> class Foo
> # A
> def foo
> # B
> class << self
> # C
> end
> end
> end
>
> A とか B の場所に書くと Foo に、C に書くと特異クラスになる式がないか、
> というわけです。
A と B は同じにならない気がするので何が正解かよく理解できてないのですが、
self そのもの、もしくは Kernel#singleton_class だったりするでしょうか?
RUBY_DESCRIPTION # => "ruby 1.9.3dev (2010-07-01 trunk 28517) [i686-linux]"
obj = Object.new
obj.instance_eval {
self # => #<Object:0x8877834>
singleton_class # => #<Class:#<Object:0x8877834>>
def foo; end
}
class Foo
self # => Foo
singleton_class # => #<Class:Foo>
def foo
self # => #<Foo:0x8877078>
singleton_class # => #<Class:#<Foo:0x8877078>>
class << self
self # => #<Class:#<Foo:0x8877078>>
singleton_class # => #<Class:#<Class:#<Foo:0x8877078>>>
end
end
end
Foo.new.foo
外してたらごめんなさい。
--
Nobuhiro IMAI <nov@yo.rim.or.jp>
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106