4
我有一個Go對象,它的地址在內存中我想保持不變。在C#中,可以將對象的位置固定在內存中。 Go有沒有辦法做到這一點?你可以用Go「鎖定」一個對象嗎?
我有一個Go對象,它的地址在內存中我想保持不變。在C#中,可以將對象的位置固定在內存中。 Go有沒有辦法做到這一點?你可以用Go「鎖定」一個對象嗎?
您保留引用的對象不會移動。沒有句柄或間接,你得到的地址是永久的。
需要注意的是,不像在C,這是完全確定,返回一個 局部變量的地址;與變量相關的存儲生存 該函數返回
後,當您設置一個變量,你可以閱讀使用&
運營商這個地址,你可以通過它。
澄清:Go的GC不是壓縮GC。它永遠不會移動活物。 –
這裏有一篇博文(免責聲明:我寫的),它更仔細地研究了Go的逃生分析:http://www.scvalex.net/posts/29/ – scvalex