在本文中,我们将研究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是常量。此方法是一种破坏性方法,因此它要在实际的数组实例中创建更改。