如果我说...保存洗牌阵列的顺序红宝石
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在线翻译时发生问题。在我的电脑上使用交互式Ruby解释器会给出正确的结果。感谢大家的帮助!
'a = [1,2,3]' 'b = a.shuffle puts b' ?? – uday 2013-02-19 20:48:44
保存订单意味着什么?我认为这会有所帮助,如果你给了一些周围的代码,以便如何定义和调用此代码。 – 2013-02-19 20:53:02
每次你放一个''都不会给你一个新的订单;它会在您每次运行代码时为您提供一个新的随机顺序,因为这会导致它再次“洗牌”。 – Phrogz 2013-02-19 20:56:02