gpt4 book ai didi

ruby - 为什么 ruby​​ 中的循环 .each 只运行了一半?

转载 作者:太空宇宙 更新时间:2023-11-03 17:21:35 24 4
gpt4 key购买 nike

我在使用这个循环时遇到了问题:

a = [1,2,3,4]
a.each{puts "#{a.shift}"}

a 我刚得到 1、2。有人可以帮助我吗?

最佳答案

Array#shift 从数组中移除第一个值并返回它。因此,当您遍历数组时,数组会被修改。

each 方法似乎基本上循环,直到索引大于或等于数组的长度。因为您在循环时从数组中删除元素,所以数组的长度会减少。当您删除两个元素时,索引为 2,长度为 2,因此 .each 循环退出。

即:

Index: 0
Array: [1, 2, 3, 4]
Print: 1

Index: 1
Array: [2, 3, 4]
Print: 2

Index: 2 # Exit here
Array: [3, 4]

关于ruby - 为什么 ruby​​ 中的循环 .each 只运行了一半?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35548700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com