御回答ありがとうございます。阿部です。 matz / ruby-lang.org (Yukihiro Matsumoto) wrote: >> 「良い」とおっしゃいますが、整数が配列になるのは自然ではない >> と思うのです。明示的に >> >> [1] >> >> と書くのをお勧めします。 あった方が良い、と思ったのは、Object#to_a が「自分自身を含む長さ 1 の配列 ([self]) を返す」という挙動だったので、とくに行うことがないので あれば、整数も同じ挙動をするべき…と (勝手に) 思っていたからです。 しかし、よくよく考えてみると、Hash はキーと値の組を返したり、Time は 時間などの配列を返すので、[self] が欲しいときは、ちゃんと [self] と書 くべきなんですね。 整数が配列になるといいなあ、と考えたもともとの話は、次のようなコード からでした。 class Tree def initialize ( label, left, right ) @label, @left, @right = label.to_a, left, right ... end end と、label を必ず配列に変換しておきたい場面があったのです。label に nil が渡されたときは @label に [] が入るようになっていてほしかったので、 to_a を使っていました。 これまでの 1.6 で動かしていたら何も起こらなかったのですが、1.7 で動 かしてみたら警告が表示されてしまったので、「どうなっているんだろう?」 と思ったという次第なのです。 次のように書く方が、to_a を使うよりは好ましいのでしょうか。 @label = (label.is_a?(Array))? label: [label].compact -------- Black / 阿部 茂