」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 我如何檢索Go Slice的基礎陣列?

我如何檢索Go Slice的基礎陣列?

發佈於2025-03-23
瀏覽:152

How Can I Retrieve the Underlying Array of a Go Slice?
在GO

讓我們考慮一個從原始問題中介紹的數組nums得出的slice numslice。默認情況下,Numslice和Nums共享相同的基礎數組。但是,當在諸如附加元素之類的操作過程中超過切片的容量時,這種基本數組可能會更改。

訪問切片的基礎數組,可以使用反射和不安全的組合。以下方法:[使用反射和unsudafe

使用Refflect.slice.slice.sliceheader獲取slice的元數據,包括指向基礎的數組(HDR.DATA)(HDR.Data)。 unsafe.pointer。

這是一個示例調整GO文檔:

s:= [] int {1,2,2,3,4} hdr:=(*反射sliceheader)(unsafe.pointer(&s)) 數據:= *( *[4] int)(unsafe.pointer(hdr.data))

注:由於使用不安全,謹慎處理內存管理是必不可少的。 [&& && && && && && &&&華[https://blog.golang.org/go-slices-usage-and-internals)。
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3