在上一篇文章中,我们看到了如何遍历Array类的实例?我们已经看到,为此目的,我们已经有了诸如Array.each,Array.reverse_each和Array.map之类的方法。在本文中,我们将学习Array.select的实现。
顾名思义,Array.select方法用于从Array中选择一些元素。此方法是非破坏性的,不会对Array对象的实际值带来任何变化。该方法根据您将在一对括号内提供的某些条件来工作。此方法基于您在块内提供的条件。如果您未在块内指定任何条件,则此方法将不起作用。尽管它不会引发异常,但您将得到nil作为结果。因此,如果您使用此方法,则应具有某些条件,根据这些条件要从Array类的对象中选择元素。如果要打印Array实例的所有元素,则可以使用Array.each方法,避免使用该方法。
语法:
Array.select{|var| #condition}
Parameter(s):
此方法不允许传递任何参数,而是要求一个条件。
范例1:
=begin Ruby program to demonstrate Array.select =end # 数组声明 num = [2,44,2,5,7,83,5,67,12,11,90,78,9] puts "Enter 'a' for Even numbers and 'b' for odd numbers" opt = gets.chomp if opt == 'a' puts "Even numbers are:" puts num.select{|num| num%2 == 0 } elsif opt == 'b' puts "Odd numbers are:" puts num.select{|num| num%2 !=0 } else puts "Wrong selection. Input valid option" end
输出结果
RUN 1: Enter 'a' for Even numbers and 'b' for odd numbers a Even numbers are: 2 44 2 12 90 78 RUN 2: Enter 'a' for Even numbers and 'b' for odd numbers b Odd numbers are: 5 7 83 5 67 11 9
说明:
在上面的代码中,您可以观察到我们正在从用户那里获取用户想要输入什么类型的数字作为输入。这是因为我们要在Array.select方法内部传递某些条件。我们根据用户提供的选项向用户提供响应,并且仅以这种方式使用此方法。
范例2:
=begin Ruby program to demonstrate Array.select =end # 数组声明 num = [2,44,2,5,7,83,5,67,12,11,90,78,9] puts num.select{|a|}
输出结果
# 没有o / p
说明:
在上面的输出中,您可以观察到,当您未在方法内部指定任何条件时,则不会得到任何输出。