我想使用for-in循环遍历我的集合,但是读取它在这样的循环中修改我的数据结构(可能是字典或数组)的内容是不安全的。那是对的吗?它有副作用吗?我应该使用带索引的for循环吗?谢谢。
答案 0 :(得分:1)
只要您不添加或删除对象,就可以了。也就是说,如果集合中的一个对象是一个可变对象,并且你改变了一些东西,就可以了。只有当您删除,添加或替换您遇到麻烦的集合中的对象时才会这样做。
答案 1 :(得分:1)
简单的答案是,是的,理论上它可能有副作用。这取决于你在循环中做了什么。如果没有更多的信息,我会说用铅笔和纸坐下来做一个合理的数学论证(感应可选,但建议),以表明这个过程永远不会淹没你的数据。
如果您正在修改数组的内容(例如,如果它是像素数组,例如更改颜色),那么如果您计划好代码,则可能不会遇到太多麻烦。如果您要添加,删除或移动元素,请谨慎使用。