teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

初回の表示位置がおかしかったので・・・。すみません。

2016/04/26 10:06

投稿

toshi_yama
toshi_yama

スコア133

answer CHANGED
@@ -17,9 +17,9 @@
17
17
  end
18
18
 
19
19
  hashA={"test"=>"aaaa"}
20
+ p hashA
20
21
  arrayA=Array.new
21
22
  arrayA = test(hashA)
22
- p hashA
23
23
  #配列に投入したハッシュの値を変更
24
24
  arrayA[0]["test"]="bbbb"
25
25
  p hashA

1

変数名を変更

2016/04/26 10:06

投稿

toshi_yama
toshi_yama

スコア133

answer CHANGED
@@ -3,18 +3,17 @@
3
3
  hashAそのものの値も変更とありますが、指している値を直接変えるので
4
4
  参照先の値が変わるという解釈で良いと思います。
5
5
 
6
- コードにすると以下も同じ事で
7
6
  hashAが指している位置は1つしかないので、値だけを渡すならば
8
7
  関数を使っては如何でしょう。
9
8
 
10
9
  ```ここに言語を入力
11
10
 
12
11
  def test(hashA)
13
- hashA ={"test2"=>"CCCC"}
12
+ #この時点で新しいメモリに値が移ります
14
13
  #ハッシュを配列に格納
15
- arrayA=Array.new
14
+ arrayB=Array.new
16
- arrayA.push(hashA)
15
+ arrayB.push(hashA)
17
- return arrayA
16
+ return arrayB
18
17
  end
19
18
 
20
19
  hashA={"test"=>"aaaa"}