Ruby 是嵌套的";如果;使用()的.instance_时是否需要循环?

Ruby 是嵌套的";如果;使用()的.instance_时是否需要循环?,ruby,Ruby,发件人:: 迭代数组的每个元素,如果元素是:Symbol(即Symbol类的实例),则将该元素添加到结果数组中 拟议的解决办法: weird_array.each do |element| if element.instance_of?(Symbol) result.push(element) end end 但是,既然#instance_of?返回一个布尔值,那么这不也是可行的吗 weird_array.each do |x| result << x.inst

发件人::

迭代
数组的每个元素,如果元素是:Symbol(即Symbol类的实例),则将该元素添加到结果数组中

拟议的解决办法:

weird_array.each do |element|
  if element.instance_of?(Symbol)
    result.push(element)
  end
end
但是,既然
#instance_of?
返回一个布尔值,那么这不也是可行的吗

weird_array.each do |x|
  result << x.instance_of?(Symbol)
end
wird_数组。每个do|x|
结果No,这会将
true
false
添加到
result
数组,而不是对象
x
本身。这不是练习要求的

不过,这是可行的:

weird_array.each do |x|
  result << x if x.instance_of?(Symbol)
end
wird_数组。每个do|x|
结果No,这会将
true
false
添加到
result
数组,而不是对象
x
本身。这不是练习要求的

不过,这是可行的:

weird_array.each do |x|
  result << x if x.instance_of?(Symbol)
end
wird_数组。每个do|x|

结果或者,您可以使用
选择
,使
if
隐式:

result = weird_array.select { |x| x.instance_of? Symbol }

或者,您可以使用
选择
,使
if
隐式:

result = weird_array.select { |x| x.instance_of? Symbol }