在本文中,我们将研究Array.reject!方法。你们都必须认为该方法必须在做一些与从Array实例中选择对象有关的事情。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法并演示程序代码来理解它。
方法说明:
该方法是一个公共实例方法,为Ruby库中的Array类定义。顾名思义,此方法用于拒绝Array中的某些元素。如果元素满足块内提供的条件或标准,则不会打印这些元素。此方法具有破坏性,并会更改Array对象的实际值。该方法基于您将在圆括号内提供的特定条件。此方法基于您在块内提供的条件。即使您未在块内指定任何条件,此方法也将起作用。如果您没有提供任何拒绝的条件或标准,它将打印所有值。
语法:
array.reject!{|var| #condition}
Argument(s) 需要:
此方法不允许传递任何参数,而是要求一个条件。
范例1:
=begin Ruby program to demonstrate Array.reject! =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.reject!{|num| num%2 != 0 } puts "Array instance: #{num}" elsif opt == 'b' puts "Odd numbers are:" puts num.reject!{|num| num%2 ==0 } puts "Array instance: #{num}" 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 Array instance: [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 instance: [5, 7, 83, 5, 67, 11, 9]
说明:
在上面的代码中,您可以观察到我们正在从用户那里获取用户想要输入什么类型的数字作为输入。这是因为我们要在Array.reject内部传递某些条件!方法。我们根据用户提供的选项向用户提供响应,并且仅以这种方式使用此方法。它拒绝满足块内提供的条件的元素。您可以看到此方法对self Array实例产生直接影响,因为该方法是破坏性方法的示例之一。
范例2:
=begin Ruby program to demonstrate Array.reject! =end # 数组声明 num = [2,44,2,5,7,83,5,67,12,11,90,78,9] puts num.reject!{|a|}
输出结果
No Output.
说明:
在上面的输出中,您可以观察到,当您在方法内未指定任何条件时,它仍未引发任何异常,它将打印Array实例中存在的所有元素。这是我们可以区分Array.select的另一点!和Array.reject!。