A field of a struct which consists of 3 items. How can this compile? : <p>I've seen code like this:</p>

<pre><code>type Product struct {
 Name        string         `db:"product_name"`
 Id          int            `db:"id"`
}

type  Stocks { 
 Name        string         `db:"stock_name"`
 Price       float          `db:"price"`
 Type        string         `db:"type"`
}
</code></pre>

<p>Although this code compiles, how can it be? A member of a struct must consist of a name and a following type. However, here there's also <code>db:"product_name"</code> which is the 3rd member</p>

<p>How can this be valid? What's <code>db:"product_name"</code> from the perspective of Go?</p>
