Array.take_while 方法
在本文中,我们将研究 Array.take_while 方法。你们一定认为该方法必须做一些与从 Array 实例中获取元素或对象相关的事情。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法和演示程序代码来理解它。
方法说明:
此方法是一个公共实例方法,是为 Ruby 库中的 Array 类定义的。此方法的用法方式是不断将对象传递给块,直到块返回 false 或 nil。当块返回 false 或 nil 时,它停止迭代并返回一个包含所有先前对象的新 Array 实例。如果您没有提供任何块或者您在没有任何块的情况下调用该方法,则该方法将返回一个枚举器。
用法:
array_instance.take_while -> Enumerator or array_instance.take_while{|arr| block}-> new_array or nil
所需参数:
此方法不接受任何参数。相反,您将不得不传递一个块。
范例1:
=begin
Ruby program to demonstrate take_while method
=end
# array declaration
table = [2,4,8,10,12,134,160,180,200]
puts "Array take_while implementation"
puts "Enter the maximum limit:"
num = gets.chomp.to_i
rslt = table.take_while{|i|i<num}
puts "The Array instance returned from the method is:#{rslt}"
输出
Array take_while implementation Enter the maximum limit: 34 The Array instance returned from the method is:[2, 4, 8, 10, 12]
说明:
在上面的代码中,您可以观察到我们在 Array.take_while 方法的帮助下从 Array 实例中获取元素。我们已经向用户询问了最大数字,并且该方法对于所有小于最大数字的整数都返回 true。最后,返回的 Array 对象具有该方法为其返回 true 的所有先前元素。
范例2:
=begin
Ruby program to demonstrate take_while method
=end
# array declaration
table = [1,3,4,6,7,8,19,21,22,24,25,99]
puts "Array take_while implementation"
puts table.take_while
输出
Array take_while implementation #<Enumerator:0x0000561a367d3718>
说明:
在上面的代码中,您可以观察到方法 Array.take_while 当我们在没有任何块的情况下调用或调用它时正在返回一个枚举数。
相关用法
- Ruby Array.take()用法及代码示例
- Ruby Array.transpose用法及代码示例
- Ruby Array.reject用法及代码示例
- Ruby Array.repeated_permutation()用法及代码示例
- Ruby Array.index()用法及代码示例
- Ruby Array.pack()用法及代码示例
- Ruby Array.rassoc(obj)用法及代码示例
- Ruby Array.values_at()用法及代码示例
- Ruby Array.each用法及代码示例
- Ruby Array.sort用法及代码示例
- Ruby Array.unshift()用法及代码示例
- Ruby Array.reverse用法及代码示例
- Ruby Array.rotate()用法及代码示例
- Ruby Array.repeated_combination()用法及代码示例
- Ruby Array.replace()用法及代码示例
- Ruby Array.drop_while用法及代码示例
- Ruby Array.sort_by用法及代码示例
- Ruby Array.shift用法及代码示例
- Ruby Array.assoc(obj)用法及代码示例
- Ruby Array.permutation()用法及代码示例
注:本文由纯净天空筛选整理自 Array.take_while Method with Example in Ruby。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。