我想知道为什么第二个解决方案有效,但第一个解决方案有链接方法,但不起作用.
这种链式方法不起作用:
nopers = [5,6,7,8,9] class Array define_method(:trimy) do self.shift().pop() end end
当我测试它时,nopers.trimy(),它给出了一个未定义的错误消息. “方法’pop’为1:Fixnum,在’block in’中”并且只执行.pop()方法,删除5.
但是,这个版本有效:
yuppers = [1,2,3,4,5,6] class Array define_method(:trim) do self.shift() self.pop() end end yuppers.trim()
当我测试它时,yuppers给了我:[2,5]