我在ruby数组推送和弹出的摘要中看到了这段代码:
nums = []
nums << 1
nums << 2
nums << 3
nums << (nums.pop) + (nums.pop)
nums << (nums.pop) * (nums.pop)
这里发生了什么?我正在努力学习,但由于某种原因无法理解最后两行中会发生什么。有人可以分解吗?
答案 0 :(得分:2)
Array 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
答案 1 :(得分:1)
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]
希望这有帮助。