«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу получить основной массив кусочка GO?

Как я могу получить основной массив кусочка GO?

Опубликовано в 2025-03-23
Просматривать:903

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

понимание среза, лежащее в основе поиска массива в Go

в Go, срез - гибкая структура данных, которая обеспечивает абстракцию над массивом. При работе с ломтиками может потребоваться доступ к базовому массиву. В этой статье объясняется механика, стоящая за этим процессом, и как получить ссылку на новый массив. По умолчанию как Numslice, так и NUM имеют одинаковый базовый массив. Тем не менее, этот базовый массив может измениться, когда емкость среза превышается во время операций, таких как добавление элементов.

для доступа к основному массиву среза, комбинации отражения и небезопасного. Вот как:

]

Использование отражения и небезопасно

используйте Refert.SliceHeader, чтобы получить метаданные среза, включая указатель в основной массив (hdr.data).
    unceafe.pointer.
  • Вот пример, адаптирующий документацию GO:
s: = [] int {1, 2, 3, 4} HDR: = (*Refert.SliceHeader) (небезопасно. Точка (& s)) data: = *( *[4] int) (uncefe.pointer (hdr.data))

примечание: из -за использования небезопасного, необходимо привлечь управление память [Здесь] (https://blog.golang.org/go-slices-usage-and-internals).
            
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3