我在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]