【发布时间】:2009-08-20 21:41:27
【问题描述】:
伪代码:
for each x in someArray {
// possibly add an element to someArray
}
我忘记了在某些语言中引发的异常的名称。
我很想知道为什么有些语言禁止这种用例,而另一些语言则允许。允许的语言是否不安全——容易陷入一些陷阱?或者禁止语言只是过于谨慎,或者可能是懒惰(他们本可以实现语言来优雅地处理这种情况,但根本没有打扰)。
谢谢!
【问题讨论】:
-
为什么投反对票?这是一个合法的编程语言设计问题。
-
我想不出一种语言(我用过的)不允许您尝试对其进行编辑。如果您从
someArray中删除x,可能会遇到并发问题。 -
这需要语言的名称,抛出的异常,甚至是导致问题的代码。简单地说,也许你没有做你认为你在做的事情。除非得到补充,否则我会投票关闭它。
-
这就是我问题的全部要点;一些编程语言(我认为 C# 就是其中之一)完全阻止了你尝试;即上面的伪代码不会编译。我可以理解对 for 循环意味着什么的更严格的期望(例如“遍历每个数组元素,恰好一次”)。但是,如果我的程序员想要在我的数组中添加或删除元素,我为什么不呢?
-
好的。我认为 C# 不允许这样做。 Perl 允许这样做。这是我想到的两种语言。
标签: programming-languages loops for-loop