Golang новое выделение памяти

#go #dynamic-memory-allocation

#Вперед #динамическое выделение памяти

Вопрос:

Я начал программировать в Go, и мне было интересно, когда new(Object) используется, он выделяет память в соответствии с размером этого объекта, верно? Если это так, как мне освободить эту память после завершения использования объекта?

Я спрашиваю об этом, потому что в C , когда new используется для объекта, вы можете delete использовать объект, как только отпадет необходимость в сохранении объекта.

Я искал, есть ли у Go delete или что-то похожее на C , но мне ничего не удалось найти.

Любая помощь очень ценится.

Комментарии:

1. В Go управление памятью не должно быть обязанностью разработчика, это сделает сборщик мусора.

Ответ №1:

Как вы видите здесь:

Go полностью очищен от мусора и обеспечивает фундаментальную поддержку параллельного выполнения и обмена данными.

Таким образом, вам не нужно заботиться о распределении памяти.

Ответ №2:

Go поддерживает сборку мусора. Это означает, что среда выполнения Go проверяет в фоновом режиме, не используется ли больше объект или любая другая переменная, и, если это так, освобождает память.

Также смотрите Часто задаваемые вопросы Go: Почему синтаксис так отличается от C? — Зачем выполнять сборку мусора? Не будет ли это слишком дорого?

Ответ №3:

В Go, в отличие от C и C , но как и в Java, управление памятью осуществляется автоматически сборщиком мусора.

Нет delete вызова.

Не по теме:

в C , когда new используется для объекта, вы можете delete использовать объект, как только отпадет необходимость в сохранении объекта.

Вы должны удалить, иначе у вас произойдет утечка памяти.