Array.shuffle!Ruby中的示例方法

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

Argument(s) 需要:

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

范例1:

=begin
  Ruby program to demonstrate shuffle! method
=end

# 数组声明
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: [16, 6, 4, 2, 8, 12, 14, 10, 20, 18]
Array instance:
[16, 6, 4, 2, 8, 12, 14, 10, 20, 18]

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

说明:

在上面的代码中,您可以观察到我们正在借助Array.shuffle将Array实例中的元素改组!方法。您可以观察到,在两次运行中,输出或生成的Array实例都是不同的,因为元素的改组始终是随机的。您还可以看到self Array中的元素也在更改,因为此方法是破坏性方法的示例之一。

范例2:

=begin
  Ruby program to demonstrate shuffle! method
=end

# 数组声明
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:
[10, 4, 12, 2, 16, 6, 8, 14, 20, 18]

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

说明:

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