在本文中,我们将研究Array.permutation()方法。你们都必须认为该方法必须执行与创建某些元素的排列相关的操作。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法并演示程序代码来理解它。
方法说明:
该方法是一个公共实例方法,为Ruby库中的Array类定义。该方法的工作方式是:从Array实例中获取元素,并根据方法中传递的数字进行排列,然后返回Array实例本身。此方法不能保证所产生元素的顺序。使用块或Array调用此方法,并通过.to_a方法将结果转换为Array实例。
如果您不提供任何块,则枚举器本身将返回。
语法:
permutation(n) { |c| block }
Argument(s) 需要:
此方法仅需要一个参数。此参数确定Array实例元素可能的排列数量。
范例1:
=begin Ruby program to demonstrate permutation method =end a = [1, 2, 3] puts "Array permutation method" print a.permutation(1).to_a puts "" print a.permutation(2).to_a puts "" print a.permutation(3).to_a
输出结果
Array permutation method [[1], [2], [3]] [[1, 2], [1, 3], [2, 1], [2, 3], [3, 1], [3, 2]] [[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]
说明:
在上面的代码中,您可以观察到此方法用于创建数组元素的排列。根据在方法内部传递的参数创建排列。可以进行N个组合,并且n可以是Array实例的长度乘以方法中传递的整数。
范例2:
=begin Ruby program to demonstrate permutation method =end a = ["Sucharu","Shalini"] puts "Array permutation method" print a.permutation(1).to_a puts "" print a.permutation(2).to_a puts "" print a.permutation(3).to_a
输出结果
Array permutation method [["Sucharu"], ["Shalini"]] [["Sucharu", "Shalini"], ["Shalini", "Sucharu"]] []
说明:
在上面的示例中,您可以观察到该方法也适用于String Array实例。此方法在进行元素排列后返回元素。对于String Array,该方法将返回“ nil”,或者可以说,如果Array的长度小于调用时在方法中传递的整数参数,则无法进行置换。