From: TAKAHASHI Masayoshi Date: 2001-05-19T03:07:59+09:00 Subject: [ruby-dev:13252] Re: Enumerator 高橋征義です。 From: matz@zetabits.com (Yukihiro Matsumoto) > | * Proc[]、Method[]、UnboundMethod[]による(newと同等の) > | インスタンスの生成 > > これってProc#[]のこと? これはインスタンスの生成ではなくcall > です。 あ、これはそうでした(_o_) > | * Struct#[]による構造体オブジェクト生成 > > 'Struct#'じゃなくて構造体クラス::[]ですよね。 そうですそうです。 foo = Struct.new("Foo", :a, :b) hoge = foo[1, 2] というものですね。そうか、構造体クラスと言えばいいのか。 でも英語だと「Structクラス」と「構造体クラス」の区別が つかないような……と思ってDave&Andy本を見てみると、例を 使ってうまく説明してますね。 # さすがだ。 > | * %q[]、%r[]みたいなオブジェクト生成 > > これは含めるのはちょっと... (^^; > もういちど再分類すると、 > > 配列などの生成 > > * Array[]、Hash[]による(newと異なる)インスタンスの生成 > * [] によるArrayの生成 > * 構造体::[]による構造体オブジェクト生成 これはやっぱり「要素の列挙」による生成、ということで いいわけですよね。 > indexing, slicing > > * String#[]、Array#[]によるslice > * Interger#[]によるビット取り出し > * MatchData#[]によるマッチしたデータ取り出し > * Thread#[]によるスレッド取り出し > * (Structのインスタンス)#[]によるメンバ取り出し > * Hash#[]による要素取り出し > * Dir[]によるファイル名(String)のArray生成(globと同じ) > (これはちょっと苦しいか) > > メソッドにできない()の代わり > > * Proc[]、Method[]、UnboundMethod[]による(newと同等の) (訂正) * Proc#[]、Method#[]、UnboundMethod#[]による(newと同等の) > インスタンスの生成 > > の3つの用法くらいですかね。大きく分けると。Dir[]がちょっと苦 > しいですが、それほどびっくりではないような。主観すぎ? なるほど、こう並べ替えると(まあ、ちょっとは引っかかりますが) だいたい納得できそうです。 > |それともいっそのこと、「Fooのインスタンス生成にはFoo[]を使っても > |いい」と、開き直った方がいいんでしょうか? > > やめてえ。 ## すみません、ディスプレイの前で爆笑してしまいました(_o_;; 高橋征義 (TAKAHASHI Masayoshi) E-mail: maki@open-news.com