var cache = struct {
sync.Mutex
mapping map[string]string
} {
mapping: make(map[string]string),
}
これはフィールドsync.Mutexが埋め込まれた構造体のように見えますが、第2セットの中括弧の周りに頭を当てることはできません。コンパイルして実行しますが、何が起きていますか?なぜ、make命令のラベルが意味を持つのですか(カンマ)ですか?あなたの例では、あなたがCache
の型を宣言し、代わりに匿名構造体を持っていない場合を除きこのGolang構造体の2番目の括弧は何ですか?
type Cache struct {
sync.Mutex
mapping map[string]string
}
cache := Cache{
mapping: make(map[string]string),
}
:おかげで...あなたが持っている
ニックピット:Goの値は 'calloc()'と同じように "値が0に初期化されていません"。特定の型のためにいわゆる "ゼロ値"で初期化されます。これらのゼロ値は、「下位のメモリチャンクのすべてのバイトが0」とは異なる場合があります。 – kostix
@kostixはい、私たちは同じことを、違った言い方でしています。 –