gpt4 book ai didi

programming-languages - 为什么某些编程语言会限制您编辑正在循环的数组?

转载 作者:行者123 更新时间:2023-12-04 13:12:37 24 4
gpt4 key购买 nike

伪代码:

for each x in someArray {
// possibly add an element to someArray
}

我忘记了在某些语言中引发的异常的名称。

我很想知道为什么有些语言禁止这个用例,而其他语言允许它。允许的语言是否不安全——容易陷入一些陷阱?或者禁止语言只是过于谨慎,或者可能是懒惰(他们本可以实现语言来优雅地处理这种情况,但根本没有打扰)。

谢谢!

最佳答案

你希望行为是什么?

list = [1,2,3,4]
foreach x in list:
print x
if x == 2: list.remove(1)

可能的行为:

list 是一些链表类型的迭代器,其中删除不会影响您当前的迭代器:
[1,2,3,4]

list 是一些数组,您的迭代器通过指针增量进行迭代:
[1,2,4] 

和以前一样,只有系统尝试缓存迭代计数
[1,2,4,<segfault>]

问题是实现这个允许foreach循环的可枚举/序列接口(interface)的不同集合具有不同的行为。

关于programming-languages - 为什么某些编程语言会限制您编辑正在循环的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1309014/

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