我想在某一个数组中插入元素,代码如下:
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]
更加摸不着头脑了……求指教……
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
补楼上, 所有object_id是一样的
foo.map(&:object_id)
=> [9298880, 9298880, 9298880, 9298880, 9298880, 9298880, 9298880, 9298880, 9298880, 9298880]
我一般都是用map.
(1..10).map {[]}
不过我还是疑问,为什么还是同一个 Array 呢?