如何在超类对象中分解数组并将数组元素放入Ruby中的两个子类对象

松下

假设我有两节课:

class One
  attr_reader :array
  def initialize(array)
    @array = array
  end
end

class Two < One
  attr_reader :array
  def initialize
    @array = []
  end
end

现在,我实例化“ One”类的一个对象和“ Two”类的两个对象。

array = [1,2] 
a = One.new(array)
b = Two.new
c = Two.new

是否可以分解存储在“ a”中的@array数组并将两个元素放在“ b”和“ c”中,从而:

if element is odd, place it in b.array.
if element is even, place it in c.array.

Output:
  b.array = [1]
  c.array = [2]

我知道继承人的工作原理可能是合法的Ruby ...

虚假的

您可以使用Enumerable#partition

array = [1, 2, 3, 4]
array.partition { |x| x % 2 == 1 }
# => [[1, 3], [2, 4]]
odd, even = array.partition {|x| x % 2 == 1}
odd
# => [1, 3]
even
# => [2, 4]

class One
  attr_reader :array
  def initialize(array)
    @array = array
  end
end

class Two < One
  attr_reader :array
  def initialize
    @array = []
  end
end

array = [1,2] 
a = One.new(array)
b = Two.new
c = Two.new

odd, even = array.partition {|x| x % 2 == 1}
b.array.concat odd
c.array.concat even
b.array
# => [1]
c.array
# => [2]

注意:正如meagar所评论,该问题与继承无关。您根本不需要在这里使用类。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Perl中分解数组哈希中的公共元素?

来自分类Dev

分解数组中的嵌套对象

来自分类Dev

如何在PHP和Laravel中分解数组

来自分类Dev

将子类中的对象放入超类类型的数组后如何调用子类方法?

来自分类Dev

当子类对象存储在超类数组中时,如何调用子类方法?

来自分类Dev

如何比较两个对象数组并将信息放入另一个对象数组?

来自分类Dev

如何比较两个数组列表,这些数组列表由属于同一超类但属于各种子类的对象的实例组成。

来自分类Dev

从超类对象数组中调用子类方法

来自分类Dev

如何在对象内分解数组并重命名从其创建的变量?

来自分类Dev

Java:分配了子类数组对象的超类数组对象

来自分类Dev

如何在ruby中基于对象属性查找两个数组的重叠

来自分类Dev

如何在猫鼬中搜索带有两个元素的对象数组

来自分类Dev

如何在Java中交换两个数组对象

来自分类Dev

如何在angularjs中合并两个对象数组?

来自分类Dev

如何查找特定对象并将其放入javascript数组中

来自分类Dev

在数组列表中存储同一个父类的两个子类

来自分类Dev

在MongoDB聚合管道中分解数组

来自分类Dev

如何在两个对象数组的对象中替换键/值对

来自分类Dev

在Ruby中合并两个对象数组

来自分类Dev

比较两个对象数组的元素

来自分类Dev

如何提取嵌套的对象数组并将其放入核心数组中?

来自分类Dev

超类对象的数组。如何将它们作为子类管理?

来自分类Dev

如何在javascript中比较两个对象数组?

来自分类Dev

如何比较mongodb数组中的两个对象元素

来自分类Dev

在Python 3中,如何在二维numpy数组中交换两个子数组?

来自分类Dev

在Python 3中,如何在二维numpy数组中交换两个子数组?

来自分类Dev

从Parse中检索对象并将其放入数组中

来自分类Dev

如何在MongoDB中数组元素的开头和结尾的字段中找到两个子字符串?

来自分类Dev

映射两个对象数组,匹配属性并将特定信息存储在新数组中

Related 相关文章

  1. 1

    如何在Perl中分解数组哈希中的公共元素?

  2. 2

    分解数组中的嵌套对象

  3. 3

    如何在PHP和Laravel中分解数组

  4. 4

    将子类中的对象放入超类类型的数组后如何调用子类方法?

  5. 5

    当子类对象存储在超类数组中时,如何调用子类方法?

  6. 6

    如何比较两个对象数组并将信息放入另一个对象数组?

  7. 7

    如何比较两个数组列表,这些数组列表由属于同一超类但属于各种子类的对象的实例组成。

  8. 8

    从超类对象数组中调用子类方法

  9. 9

    如何在对象内分解数组并重命名从其创建的变量?

  10. 10

    Java:分配了子类数组对象的超类数组对象

  11. 11

    如何在ruby中基于对象属性查找两个数组的重叠

  12. 12

    如何在猫鼬中搜索带有两个元素的对象数组

  13. 13

    如何在Java中交换两个数组对象

  14. 14

    如何在angularjs中合并两个对象数组?

  15. 15

    如何查找特定对象并将其放入javascript数组中

  16. 16

    在数组列表中存储同一个父类的两个子类

  17. 17

    在MongoDB聚合管道中分解数组

  18. 18

    如何在两个对象数组的对象中替换键/值对

  19. 19

    在Ruby中合并两个对象数组

  20. 20

    比较两个对象数组的元素

  21. 21

    如何提取嵌套的对象数组并将其放入核心数组中?

  22. 22

    超类对象的数组。如何将它们作为子类管理?

  23. 23

    如何在javascript中比较两个对象数组?

  24. 24

    如何比较mongodb数组中的两个对象元素

  25. 25

    在Python 3中,如何在二维numpy数组中交换两个子数组?

  26. 26

    在Python 3中,如何在二维numpy数组中交换两个子数组?

  27. 27

    从Parse中检索对象并将其放入数组中

  28. 28

    如何在MongoDB中数组元素的开头和结尾的字段中找到两个子字符串?

  29. 29

    映射两个对象数组,匹配属性并将特定信息存储在新数组中

热门标签

归档