回答編集履歴
2
社員番号が変だった
answer
CHANGED
@@ -10,9 +10,9 @@
|
|
10
10
|
|
11
11
|
eachの中で`answer_array.push(num_array)`は三回呼ばれることになりますが、この間、num_arrayが指し示す物は変更されていませんので、**同じ配列に複数の番号を付けただけになってしまいます**。太郎君が社員番号0番と社員番号1番と社員番号2番の三つの番号で呼ばれるようになったような物です。
|
12
12
|
|
13
|
-
そして、`num_array.clear`でnum_arrayが指すもの自体を空にしています。太郎君がおなかをすかしたような物です。そうなると、社員番号
|
13
|
+
そして、`num_array.clear`でnum_arrayが指すもの自体を空にしています。太郎君がおなかをすかしたような物です。そうなると、社員番号0番も空腹ですし、社員番号1番も空腹ですし、社員番号2番も空腹です。みんな実体は太郎君なんですから。
|
14
14
|
|
15
|
-
解決方法はeachのループ内で配列を作ることです。echaの中に`num_array = Array.new`を入れれば、その度に新たに配列が作られますので、**それぞれが指す先は別の配列になります**。ループの度に新入社員が入ってきて、そいつを毎回太郎君と呼んでいるような物です。ですが、これらの太郎君は毎回別の人物ですので、社員番号
|
15
|
+
解決方法はeachのループ内で配列を作ることです。echaの中に`num_array = Array.new`を入れれば、その度に新たに配列が作られますので、**それぞれが指す先は別の配列になります**。ループの度に新入社員が入ってきて、そいつを毎回太郎君と呼んでいるような物です。ですが、これらの太郎君は毎回別の人物ですので、社員番号0番と社員番号1番と社員番号2番はそれぞれ別人になります。(実際に修正したコードはNeightさんの回答を参考にしてください。)
|
16
16
|
|
17
17
|
---
|
18
18
|
|
1
誤字の修正
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
Rubyの配列はオブジェクトの入れ物では無く、**オブジェクトに対する参照の入れ物**です。別の言い方をすると**番号で名前を付けている**とも言えます。これは変数についても同じです。
|
2
2
|
|
3
3
|
```Ruby
|
4
|
-
a =
|
4
|
+
a = Array.new # 新しく配列を作り、それを今から a と呼ぶ。
|
5
5
|
a[0] = "hoge" # aと言う物(先ほど作った配列のこと)のインデックス番号0は、"hoge"という文字列を指すことにする。
|
6
6
|
a.push("fuga") # aと言う物(先ほど作った配列のこと)の最後に枠を作って(この場合はインデックス番号1)、"fuga"という文字列を指すことにする。
|
7
7
|
```
|