我想在某一个数组中插入元素,代码如下:
foo = Array.new(10,[]) foo[0] << 1 puts foo.to_s
输出的结果是
[[1], [1], [1], [1], [1], [1], [1], [1], [1], [1]]
这是为什么啊?
如果是哈希的话
bar = Hash.new([]) bar[0] << 1 puts bar.to_s puts bar[1].to_s
{} [1]
更加摸不着头脑了……求指教……
欢迎选择我的课程,让我们一起见证您的进步~~
으아악
이 방법으로 생성된 10개의 빈 배열은 동일한 객체입니다
다른 Object를 생성하고 싶다면 다음 방법을 이용해주세요.
참조: http://ruby-doc.org/core-2.0.0/Array.html#label-Creating+Arrays
위에 덧붙이자면, object_id는 모두 동일합니다 foo.map(&:object_id) =>
저는 주로 지도를 사용합니다. (1..10).map {[]}
하지만 여전히 질문이 있습니다. 왜 여전히 동일한 어레이인가요?
으아악
이 방법으로 생성된 10개의 빈 배열은 동일한 객체입니다
다른 Object를 생성하고 싶다면 다음 방법을 이용해주세요.
으아악참조: http://ruby-doc.org/core-2.0.0/Array.html#label-Creating+Arrays
위에 덧붙이자면, object_id는 모두 동일합니다
foo.map(&:object_id)
=>
저는 주로 지도를 사용합니다.
(1..10).map {[]}
하지만 여전히 질문이 있습니다. 왜 여전히 동일한 어레이인가요?