我有一个继承自 Array 的类(实际上,它只是多维数组的掩码)。我想覆盖它的to_a
方法:
def to_a
self.each.with_index { |el, i| el.map {|j| j} }
end
但这搞砸了:当我尝试测试我的功能时:
it 'should be non destructive' do
a_board = Representation.new(@a_size)
a_clean_board = Representation.new(@a_size)
expect(a_board).to eq(a_clean_board)
# Try to modify a_board
arr = a_board.to_a
arr.pop
a_board.to_a.pop
# Check that it stayed equal to a_clean_board
expect(a_board).to eq(a_clean_board)
end
两者都要求对pop
原始电路板产生副作用。
我怎样才能避免这种情况?