Ruby的Array#转换是做什么的?
我很难理解Ruby中的Array类的移位和非移位方法。 有人能帮我理解他们做什么吗?
看看Ruby文档
Array.shift从数组中移除第一个元素并返回它
a = [1,2,3] puts a.shift => 1 puts a => [2, 3]
不移位将提供的值前置到数组的前面,将所有其他元素向上移动一个
a=%w[bcd] => ["b", "c", "d"] a.unshift("a") => ["a", "b", "c", "d"]
按照pop
和push
类似的方式shift
和shift
行为:它们意味着使用数组作为堆栈,您可以添加和移除元素(通常每次一个)。 不同之处在于,在Array
开始处shift
和不shift
添加/移除元素,实际移动所有其他元素,同时pop
和push
Array
末尾的添加/移除元素,从而保留其他元素的索引。
例子:
a = [2, 4, 8] a.push(16, 32) # a => [2, 4, 8, 16, 32] a.unshift(0, 1) # a => [0, 1, 2, 4, 8, 16, 32] a.shift # a => [1, 2, 4, 8, 16, 32] a.pop # a => [1, 2, 4, 8, 16]
它抓取第一个元素,将其从数组中移除,并返回已移除的元素。 它基本上是一个像堆栈一样对待数组的方法: shift
是popup的,不shift
是推动。
如果你可以把数组想象成一个要处理的值的队列,那么你可以取下一个(前)值,并“移动”另一个值来占用可用的空间。 unshift将值放回 – 也许你还没有准备好处理其中的一些,或者让稍后的代码处理它们。
它返回数组的第一个元素,并将其从数组中移除, 将元素移回到一个地方。
所以将[1,2,3,4,5]
返回1
,并将数组设置为[2,3,4,5]
。
更多在这里 。