質問: line[0] ``` array[line[1].to_i] は何を指しているか分かるのですが、line[0]に何故格納するのか分かりません また、自身の認識ですと、この様に記入すると言う事は、何かの値を格納すると言う意味になる為、動かなくなるイメージです。 上記のコードはどの様な動きになっているか教えていただけませんか。 また、このコードで動いているので、どの様に出力されているか知る為、p array を記載した所、 {1=>"A", 2=>"B"} と出力されました。何故、唐突にHashで生成されているのか教えて頂きたいです。 ``` array.each do |ele| puts ele[1] end ``` 最終行でのarrayは{1=>"A", 2=>"B"} になっているので、英語の文字のみを出力する為、puts ele[1]を記載したと言う認識で間違っていないでしょうか。 初歩的な疑問だと思われますが、不明点について、ご回答して頂けたら幸いです。
回答: > > array[line[1].to_i] は何を指しているか分かるのですが、line[0]に何故格納するのか分かりません > > > いえ、逆です。`line[0]`**を**`array[line[1].to_i]`**に**代入しています。 > > この様に記入すると言う事は、何かの値を格納すると言う意味になる為、動かなくなるイメージです。 > > > どうして「何かの値を格納する」ことと「動かなくなる」が結びつくのでしょうか。何も値を格納しないプログラムは、おそらく固定的な値を出力することしかできないでしょう。 > > 何故、唐突にHashで生成されているのか教えて頂きたいです。 > > > `array = {}`となっているように、**最初から**ハッシュです。 > > 最終行でのarrayは{1=>"A", 2=>"B"} になっているので、英語の文字のみを出力する為、puts ele[1]を記載したと言う認識で間違っていないでしょうか。 > > > これは合っています。 全般に、コードを忠実に辿らず、自分の思い込みで読み進めてしまっているところが多いように思われます。コードは、書いたとおりにしか動きません。