0]}こんな結果が得られる。こんな結果が出た、という意味だけど、ちょっと細かい情報が多くてわかりづらいと思う。以外で消費したメモリ消費量(のヒント。死んだときに数える)ということを意味しているんだけど、まぁ最初のカラム(生成数)だけ見ていればいいと思う。個生成されたオブジェクト。何が出来ているのか?より詳しく知るためには、こんな風に使う。ごとに統計を取るようになる。結果は、こんなふうになった。T_ARRAY、つまり配列がガンガン出来ている、ということがわかる。多重代入は、配列を返す。何を言っているのかわからないのと思うので、具体例を出す。いう式の値を参照している。使ってみれば、明らかだ。生成されていることがわかる。思うかもしれないし、過去の私もそう思ったので、使わないことが明らかな場合、つまり、この値を捨てていることが明らかであるとき、配列を生成しないようにしている。nil}の結果は、{}つまり、何のオブジェクトも生成されていないことがわかる。以前のプログラムでは、多重代入の値が、それをくるむブロックの値として返されており、そこで必要かもしれないから、丁寧に配列を返す。返すことを明示することで、配列を生成しないようになったということである。0]}配列は生成される。ような(左辺値にメソッド呼び出しなんかがある)多重代入では、真面目に配列を作っている。順番に実行するためである。逆に、そうじゃなくても良い場合を考える。こんなふうに実行する。副作用がある可能性がある。設定されたときにログを出力するかもしれない。a[x]とすることはできない。するというふうに実装されている、というわけである。ここまでわかると、多重代入を使うからダメ、ってことがわかるので、これを分解してみる。0]}こうなって、見事に配列が無くなったことがわかる。527712KB見事、理想的なメモリ使用量になったのでした。