4
我有一个Go对象,它的地址在内存中我想保持不变。在C#中,可以将对象的位置固定在内存中。 Go有没有办法做到这一点?你可以用Go“锁定”一个对象吗?
我有一个Go对象,它的地址在内存中我想保持不变。在C#中,可以将对象的位置固定在内存中。 Go有没有办法做到这一点?你可以用Go“锁定”一个对象吗?
您保留引用的对象不会移动。没有句柄或间接,你得到的地址是永久的。
需要注意的是,不像在C,这是完全确定,返回一个 局部变量的地址;与变量相关的存储生存 该函数返回
后,当您设置一个变量,你可以阅读使用&
运营商这个地址,你可以通过它。
澄清:Go的GC不是压缩GC。它永远不会移动活物。 –
这里有一篇博文(免责声明:我写的),它更仔细地研究了Go的逃生分析:http://www.scvalex.net/posts/29/ – scvalex