私は初期化することができることを理解Rubyで各doループを使用して配列を埋めることができないのはなぜですか?私は配列を埋めるために各doループを使用する場合はそのまま、それはアレイを残す
array = Array.new(4)
array.each do |i|
i = 5
end
(この場合には、サイズ4のゼロ配列であろう)配列を私の希望する値でarray = Array.new(4) {desired value}
を使用していますが、異なる値の間で選択している状況があり、それぞれのループがどのように正確に動作するかを理解しようとしています。
私はそれをやっている現在の方法は、あなたが必要とする私の目標値
array = Array.new(4)
array.each_with_index do |val, i|
array[i] = 5
end
代わりに、2番目のパラメータを渡して、配列を記入することもできます: 'array = Array。new(4、5) 'と同じ効果が得られます。 – DaniG2k
これは、Rubyが参照渡しであると主張する人が混乱している別の例です。いいえ、そうではありません!これは値渡しです。それが参照渡しだった場合、OPのコードは機能します。私はなぜこれほど議論の余地があるのか分からない。 Rubyが参照渡しであると主張することで、混乱を避けることができますか? –