Array.combination()方法和Ruby中的示例
Ruby数组。combination()方法
在上一篇文章中,我们看到了如何使用Array.collect方法。Array.collect方法与Array.map方法非常相似,因为这两种方法都用于在Array实例中创建一些修改。我们还学习了Array.collect方法的破坏性和非破坏性版本。在本文中,我们将看到如何实现Array.combination方法?我们将借助其语法和程序代码来理解它们。
方法说明:
该方法是一个公共实例方法,为Ruby库中的Array类定义。该方法的工作方式是从Array实例中获取元素,并根据方法中传递的数字进行组合,然后返回Array实例本身。此方法不能保证所产生元素的顺序。使用块或数组调用此方法,并使用.to_a方法将结果转换为Array实例。
如果您不提供任何块,则枚举器本身将返回。
语法:
combination(n) { |c| block }
Argument(s):
此方法仅需要一个参数。此参数确定Array实例的元素可能组合的数量。
范例1:
=begin Ruby program to demonstrate combination method =end #数组 a = [1, 2, 3, 4] print a.combination(1).to_a puts "" print a.combination(2).to_a puts "" print a.combination(3).to_a puts "" print a.combination(4).to_a puts "" print a.combination(0).to_a puts "" print a.combination(5).to_a
输出结果
[[1], [2], [3], [4]] [[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]] [[1, 2, 3], [1, 2, 4], [1, 3, 4], [2, 3, 4]] [[1, 2, 3, 4]] [[]] []
说明:
在上面的代码中,您可以观察到此方法用于创建Array元素的组合。根据在方法内部传递的参数创建组合。一切顺利,直到参数4通过为止,因为数组中存在4个元素。传递数字0时,它创建了一个空的Array实例,或者可以说返回了一个空的Array;传递数字5时,则返回了一个空的Array,因为该数组中不存在五个元素实例。
范例2:
=begin Ruby program to demonstrate combination method =end #数组 a = ["Sangita", "Babita", "Rashmi"] print a.combination(1).to_a puts "" print a.combination(2).to_a puts "" print a.combination(3).to_a puts "" print a.combination(4).to_a puts "" print a.combination(0).to_a puts "" print a.combination(5).to_a
输出结果
[["Sangita"], ["Babita"], ["Rashmi"]] [["Sangita", "Babita"], ["Sangita", "Rashmi"], ["Babita", "Rashmi"]] [["Sangita", "Babita", "Rashmi"]] [] [[]] []
说明:
在上面的示例中,您可以观察到该方法也适用于StringArray实例。此方法在组合元素后返回元素。