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

回答編集履歴

1

例示

2016/06/16 23:30

投稿

otn
otn

スコア86349

answer CHANGED
@@ -1,4 +1,14 @@
1
1
  それはそうなります。
2
2
  ArrayにHashを入れるときに、Hashのコピーを作って入れるわけじゃなくて、そのHashそのものを入れるので、そのHashをclear(要素をすべて削除)すれば、空になります。
3
3
 
4
- オブジェクトのコピーは、dupやclone等で明示的に行わない限り、されません。
4
+ オブジェクトのコピーは、dupやclone等で明示的に行わない限り、されません。
5
+
6
+ 追記(もっとシンプルな例):
7
+ ```Ruby
8
+ a = {:foo=>1} # Hashを生成して、それに a という名前を付ける
9
+ b = a # a という名前の付いたHashに b という別名を付ける
10
+ p b #=> {:foo=>1} # その a および b という名前の付いたHashを表示する
11
+ a.clear # a および b という名前の付いたHashの内容を空にする
12
+ p b #=> {} # a および b という名前の付いたHashは空である
13
+ ```
14
+ 1つのオブジェクトにはいくつでも名前を付けられます。