Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 数组中的奇怪行为。随机元素_Ruby_Arrays - Fatal编程技术网

Ruby 数组中的奇怪行为。随机元素

Ruby 数组中的奇怪行为。随机元素,ruby,arrays,Ruby,Arrays,我用数组做了一些操作,像这样(非常简单) 好的,让我们看看它的值 b => [1, 2] b => [1, 3] b => [1, 2] b => [1, 4] 我不明白为什么b会改变。我假设我从a和b之间的差分中提取一个随机元素,并将其附加到b,所以。。。我错在哪里 编辑: 今天是新的一天,神奇的是,同样的代码运行正常。。。。这是个迷雾 谢谢大家 这就是你期望得到的吗 a = [1,2,3,4] b = [] 0.upto(3) do b.push((

我用数组做了一些操作,像这样(非常简单)

好的,让我们看看它的值

b
=> [1, 2]
b
=> [1, 3]
b
=> [1, 2]
b
=> [1, 4]    
我不明白为什么b会改变。我假设我从a和b之间的差分中提取一个随机元素,并将其附加到b,所以。。。我错在哪里

编辑:

今天是新的一天,神奇的是,同样的代码运行正常。。。。这是个迷雾
谢谢大家

这就是你期望得到的吗

a = [1,2,3,4]
b = []
0.upto(3) do
    b.push((a-b).sample)
    puts b
end

  #=>  [2]
  #=>  [2, 4]
  #=>  [2, 4, 1]
  #=>  [2, 4, 1, 3]

我无法复制:这似乎很奇怪,每次你检查b,它都有不同的值。这只是一个裸体的irb会话?没有其他线索提到b了吗?@dominikh你得到了我应该得到的东西code@dbenhur,我已经关闭了所有的irb会话,打开了一个新的控制台,并再次获得该结果。。。你说“新控制台”真奇怪。那是rails控制台还是irb?你有没有把什么东西装进去。irbrc?是的。我只想得到一个随机元素并将其添加到现有数组中,但我不希望在更改之前得到这些随机元素。你知道我为什么会有这种奇怪的行为吗?为什么我推入b的元素会多次改变?@Imanol在这方面没有奇怪的行为。试着澄清你的问题,并更好地解释问题所在happening@ismaelga他的问题显示他推到b一次,然后检查b几次。每次检查都会显示具有不同内容的b,但在初始推送之后,没有对b调用任何突变方法。这就是奇怪的地方。谢谢你的解释@dbenhur,我正在努力提高我的英语水平。。那我就帮不了你了。。。将删除我的答案
a = [1,2,3,4]
b = []
0.upto(3) do
    b.push((a-b).sample)
    puts b
end

  #=>  [2]
  #=>  [2, 4]
  #=>  [2, 4, 1]
  #=>  [2, 4, 1, 3]