如果我说......
a = [1,2,3]
a.shuffle
puts a
......它给出[1,2,3]。相反,我说...
a=[1,2,3]
a.shuffle!
puts a
......每当我说出一个新的订单时,它给了我一个新的订单。所以我的问题是如何保存一个洗牌阵列的订单?如果它第一次返回[3,1,2]它应该保持这个顺序。这有意义吗?
这是我正在谈论的一个例子。每次我打电话给b,我都会得到不同的结果。
> a=[1,2,3]
=> [1, 2, 3]
> b=a.shuffle!
=> [1, 3, 2]
> b
=> [1, 2, 3]
> b
=> [2, 1, 3]
> b
=> [1, 3, 2]
> b
=> [3, 2, 1]
“b”似乎是指函数a.shuffle而不是shuffle本身的结果。
答案:
在TryRuby.org上使用在线翻译时出现问题。在我的PC上使用交互式Ruby解释器可以得到正确的结果。感谢大家的帮助!
答案 0 :(得分:1)
你需要这样的东西:
a = [1,2,3]
b = a.shuffle
puts b
答案 1 :(得分:1)
在TryRuby.org上使用在线翻译时出现问题。在我的PC上使用交互式Ruby解释器可以得到正确的结果。感谢大家的帮助!
答案 2 :(得分:0)
a.shuffle
会返回a
,但不会更改a
本身,因此您需要将结果分配给其他变量(或a
如果那是你想要的)。如果您希望该方法直接更改a.shuffle!
,则需要致电a
。