在Go中使用指针作为地图键是否安全?

sko*_*ush 7 memory garbage-collection go data-structures

假设我们使用指针作为键向地图添加值.这个指针的内存地址是否会改变?如果是这样,将在地图中查找失败因为插入时它有不同的内存地址?

小智 10

内存地址是否可以改变,在指针作为uint意义?是的,但在不安全的软件包之外,go不会将指针公开为uints.那么,在地图上查找会失败吗?没有.

请参阅规格.链接部分甚至包括指针键控映射作为示例.

  • 从另一个角度来看相同的想法:如果任何未来的实现具有移动的GC,则规范保证指针键控映射有效. (4认同)