Array.select!Ruby中的示例方法

Array.select!方法

在本文中,我们将研究Array.select!方法。你们都必须认为该方法必须在做一些与从Array实例中选择对象有关的事情。它并不像看起来那么简单。好吧,我们将在其余内容中解决这个问题。我们将尝试借助语法并演示程序代码来理解它。

方法说明:

该方法是一个公共实例方法,为Ruby库中的Array类定义。顾名思义,此方法用于从数组中选择一些元素。这种方法是破坏性的并带来Array对象实际值的变化。该方法基于您将在圆括号内提供的特定条件。此方法基于您在块内提供的条件。如果您未在块内指定任何条件,则此方法将不起作用。尽管它不会引发异常,但您将得到nil作为结果。因此,如果您正在使用此方法,则应该具有一定的条件,根据该条件要从Array类的对象中选择元素。如果要打印Array实例的所有元素,则可以使用Array.each方法,避免使用该方法。

语法:

    array.select!{|var| #condition}

Argument(s) 需要:

此方法不允许传递任何参数,而是要求一个条件。

范例1:

=begin
  Ruby program to demonstrate Array.select! method
=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
	}
	puts "Array instance: #{num}"
elsif opt == 'b'
	puts "Odd numbers are:"
	puts num.select!{|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:
nter '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.select内部传递某些条件方法。我们根据用户提供的选项向用户提供响应,并且仅以这种方式使用此方法。您可以看到此方法对self Array实例产生直接影响,因为该方法是破坏性方法的示例之一。

范例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|}

输出结果

No Output.

说明:

在上面的输出中,您可以观察到,当您未在方法内部指定任何条件时,则不会得到任何输出。