From: TEI meiki Date: 1998-11-01T19:45:10+09:00 Subject: [ruby-list:10567] Re: ruby:struct -> ext module -> ruby 鄭です。 # 人に教える程詳しいわけではないんですが、勉強がてら、、、(^_^; Kikutani Makoto writes: > [#, > #, > #, > #] > > となるかと思いきや > > [#, > 10, 20, 30, > #, > #] > > となって驚いたわけです。 > b[1, 0] = [tmp] > としなきゃいかんのですね? > > StructというのはArrayの一種なんですか? マニュアルの Array の項を見ると self[start..end] = val self[start, length] = val どちらも val は「配列val」と書いてあります。 配列の []= メソッドは、引数にまず .to_a メッセージを送っているのでは 無いでしょうか? Struct#to_a が 「構造体のメンバーを配列に入れて返します」と説明されている ので、現象の説明はつきます。 さらに、Object#to_a の説明を見ると 「オブジェクトを配列に変換します. 普通に配列に変換できないような オブジェクトは自身を含む 1要素の配列に変換されます。」 とあるので、 b[1, 0] = 0 と b[1, 0] = [0] は同じ結果になるのですね。 # 「引数にまず .to_a メッセージ」であってるかな? -- ┌─鄭 明毅───────────────────┐ └──tei@harmony.co.jp──tei@mirage.linc.or.jp─┘