假设我有两节课:
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] 删除。
我来说两句