这很安全!您还可以在Effective Go中找到类似的示例:
for key := range m { if key.expired() { delete(m, key) }}和语言规范:
未指定地图的迭代顺序,并且不能保证每次迭代之间都相同。如果 在迭代过程 中 删除
尚未到达的地图条目,则不会生成相应的迭代值。如果映射条目是 在迭代过程 中 创建的
,则该条目可能在迭代过程中产生或可以被跳过。对于创建的每个条目以及从一个迭代到下一个迭代,选择可能有所不同。如果映射为nil,则迭代次数为0。



