push and popping ruby arrays nums << (nums.pop) + (nums.pop)



我在ruby数组推入和弹出的摘要中看到了这段代码:

nums = []
nums << 1
nums << 2
nums << 3
nums << (nums.pop) + (nums.pop)
nums << (nums.pop) * (nums.pop)

这是怎么回事?我正在努力学习,但由于某种原因无法理解最后2行发生了什么。有人能把它拆开吗?

数组pop方法返回数组的最后一个元素。

所以nums.pop第一次返回值3第二次返回值2

nums << (nums.pop) + (nums.pop)语句中,我们将这两个(3,2)值相加并压入同一个数组。所以Result数组是[1,5]

现在数组nums是[1,5]

对于第二个语句nums << (nums.pop) * (nums.pop),我们取出nums array的两个元素并相乘并将结果压入同一个数组

结果数组是nums = [5].

检查ruby控制台以获得更多说明,也可以通过此链接http://www.ruby-doc.org/core-2.1.2/Array.html

pop将数组中的最后一个元素截断并返回。
<<push相同,在数组末尾添加一个元素。
一行中的操作顺序是:pop,pop,add,push。我现在就不解释了,读一下吧。

那么,从[1,2,3]开始:

[1,2,3] --> pop=3,pop=2,add=(2+3),push=5      --> [1,5]
[1,5]   --> pop=5,pop=1,multiply=(1*5),push=5 --> [5]

最新更新