Arrays RUBY:Rotate函数在单元测试中对数组不起作用
我正在用Ruby测试代码输出。我想使用Ruby的Arrays RUBY:Rotate函数在单元测试中对数组不起作用,arrays,ruby,function,sorting,Arrays,Ruby,Function,Sorting,我正在用Ruby测试代码输出。我想使用Ruby的rotate()函数使数组的最后一个元素成为第一个元素,原始的第一个元素成为数组中的第二个元素,等等 代码 require 'minitest/autorun' class TestMagicBus < MiniTest::Test def setup @bus = MagicBus.new(["Peter","James","Bardoe","Patrick
rotate()
函数使数组的最后一个元素成为第一个元素,原始的第一个元素成为数组中的第二个元素,等等
代码
require 'minitest/autorun'
class TestMagicBus < MiniTest::Test
def setup
@bus = MagicBus.new(["Peter","James","Bardoe","Patrick","Jake","Samson","Dave"])
end
def test_move_the_last_passenger_to_the_front_of_the_bus
assert_equal "Peter", @bus[0]
@bus.rotate(-1)
print(@bus)
assert_equal "Dave", @bus[0]
end
为什么rotate()
什么都不做
MAGICBUS类的定义
class MagicBus < Array
attr_writer :seating
end
class MagicBus
大多数Ruby内置方法都不会以结尾
创建操作对象的副本,因此@bus.rotate
使用旋转结果创建一个新的MagicBus对象,这就是@bus=@bus.rotate-1
工作的原因
要在位修改对象,有一种方法:
你可以使用旋转!相反。你能展示一下
类MagicBus
的定义吗?@iBug Done。。。请注意,@bus=@bus.rotate(-1)
可以“大多数Ruby内置方法都不会以结尾”!
创建操作对象的副本”——这并不是真的。许多数组
方法会使接收器发生变异,并且不会产生任何影响,例如替换
,清除
,删除
,保留
,
class MagicBus < Array
attr_writer :seating
end
@bus.rotate! -1