反応が悪いことをおologiesび申し上げますが、ここにもっと詳細な対応があります。

GO仕様では、ゴミコレクターがあることを保証するものではないため、ガベージコレクションの実行方法は実装間で異なる場合があります。
そうは言っても、GOチームによってサポートされている3つのGOコンパイラ実装（2023年4月現在）：GC、GCCGO、およびGOLLVMは、すべてガベージコレクションを実装しています
同様に。

前述の3つの実装で使用されるごみ収集スキームは、Mark and Sweepです。
プログラムに存在するオブジェクト間のオブジェクトとポインターの構造は、集合的に**オブジェクトグラフ**と呼ばれます。
マークとスイープは、プログラムの**ルーツ**および**マーキング**のすべてのオブジェクトから、あらゆるルーツから到達できるすべてのオブジェクトから始めることで機能します。
マークされていないオブジェクトは**スイープされます**、つまり、収集されます。

GoのGarbage Collectionの方法については、https：//go.dev/doc/gc-guideをご覧ください。
My apologies for the poor response, here is a more detailed response.

The Go specification does not guarantee that there is a garbage collector, so how garbage collection is done can differ between implementations.
That being said, the three Go compiler implementations supported by the Go team(as of April 2023): gc, gccgo, and gollvm, all implement garbage collection
in a similar manner.

The garbage collection scheme that is used in the three aforementioned implementations is Mark and Sweep.
The structure of objects and pointers between objects that exist in a program is collectively called the **object graph**.
Mark and Sweep works by starting at the program's **roots** and **marking** all objects which can be reached from any of the roots.
Objects that do not get marked will be **sweeped** i.e. garbage collected.

You can read more about how Go's garbage collection works here: https://go.dev/doc/gc-guide