当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby Array.shuffle用法及代码示例


Array.shuffle 方法

在本文中,我们将研究 Array.shuffle 方法。你们一定认为该方法必须做一些与 Array 实例中元素或对象的混洗相关的事情。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法和演示程序代码来理解它。

方法说明:

此方法是一个公共实例方法,是为 Ruby 库中的 Array 类定义的。此方法的用法方式是随机打乱 Array 实例中存在的对象。此方法的返回类型是一个 Array 对象,它以混洗的方式包含 self 的所有元素。您还可以提供一个可选参数rng它可以用作随机数生成器。此方法是非破坏性方法的示例之一,这意味着此方法创建的更改不是永久或临时的,不会影响 self Array 实例中元素的实际排列。

用法:

    array_instance.shuffle -> new_array
    or
    array_instance.shuffle(random:rng)-> new_array

所需参数:

此方法采用一个可选参数。此参数可用于随机数生成。

范例1:

=begin
  Ruby program to demonstrate shuffle method
=end

# array declaration
table = [2,4,6,8,10,12,14,16,18,20]

puts "Array shuffle implementation"
pq =table.shuffle

puts "Array instance after shuffling:#{pq}"

puts "Array instance:"
print table

输出

RUN 1:
Array shuffle implementation
Array instance after shuffling:[14, 18, 12, 16, 6, 4, 2, 10, 8, 20]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

RUN 2:
Array shuffle implementation
Array instance after shuffling:[12, 14, 18, 2, 20, 10, 6, 4, 16, 8]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

说明:

在上面的代码中,您可以观察到我们在 Array.shuffle 方法的帮助下对 Array 实例中的元素进行了混洗。您可以观察到,在两次运行中,输出或生成的 Array 实例都不同,因为元素的混洗始终是随机的。您还可以看到 self Array 中的元素保持不变,因为该方法是非破坏性方法的示例之一。

范例2:

=begin
  Ruby program to demonstrate shuffle method
=end

# array declaration
table = [2,4,6,8,10,12,14,16,18,20]

puts "Array shuffle implementation"
pq = table.shuffle(random:Random.new(2))

puts "Array instance after shuffling:#{pq}"

puts "Array instance:"
print table

输出

RUN 1:
Array shuffle implementation
Array instance after shuffling:[10, 4, 12, 2, 16, 6, 8, 14, 20, 18]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

RUN 2:
Array shuffle implementation
Array instance after shuffling:[10, 4, 12, 2, 16, 6, 8, 14, 20, 18]
Array instance:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

说明:

在上面的代码中,您可以观察到我们在 Array.shuffle 方法的帮助下对 Array 实例的元素进行了混洗。我们在方法内部传递一个参数以生成一个随机数。这有助于您使洗牌保持不变。在两次运行中,您都可以观察到返回的 Array 是常量。此方法是一种非破坏性方法,因此它不会在实际数组实例中创建任何更改。



相关用法


注:本文由纯净天空筛选整理自 Array.shuffle Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。