2016-04-05 12 views

答えて

2

これは、内部ではchanがポインタで構成されているためです。あなたはそれにポインタを送る必要はありません。あなたが異なるスコープでそれを使用するために周りにそれへのポインタを渡す必要があるので、逆に、sync.WaitGroupは、すべてのメソッドは、ポインタ受信機と宣言され、そのために、古典的な構造体

type WaitGroup struct { 
    state1 [12]byte 
    sema uint32 
} 

です。

0

Goでは、chanは言語プリミティブであり、sync.WaitGroupは構造体です。 Goは値によってパラメータを渡すので、WaitGroupはコピーとして渡され、chaninterfaceのように渡され、実装の詳細へのポインタを含むメタデータを持つプリミティブ型として実装されます。

関連する問題