Ruby的数组#Shift是做什么的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (25)

我很难理解Ruby中的Array类的shift和unshift方法。有人能帮我理解吗?

提问于
用户回答回答于

查看Ruby文档

Array.shift从数组中移除第一个元素并返回它

a = [1,2,3] 
puts a.shift
 => 1 
puts a
 => [2, 3] 

Unshift将提供的值预先放置在阵列的前面,将所有其他元素向上移动一个

a=%w[b c d]
 => ["b", "c", "d"] 
a.unshift("a")
 => ["a", "b", "c", "d"] 
用户回答回答于

shiftunshift作用于相似的方式poppush:他们是为了使用数组作为堆栈可向其中追加和删除元素(每个时间通常之一)。所不同的仅仅是shiftunshift添加/ AT的开始删除元素Array,而poppush添加/ AT的末尾删除元素Array,所以保留其他元素的索引。

例子:

                      # Spacing for clarity:
a = [2, 4, 8]    # 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]

扫码关注云+社区