Why assign a reference to a struct in go?

go, initialization, reference, struct

Solution

The difference is in the type of your variable.

client := &http.Client{

makes `client` of type `*http.Client`

while

client := http.Client{

builds a `http.Client`.

Problem

I'm having a look at the code at this page: http://golang.org/pkg/net/http/ And there's one thing I don't understand - at some point, a new structure is created and initialized like this: ``` client := &http.Client{ CheckRedirect: redirectPolicyFunc, } ``` Why use `&` when creating this structure? I've also read this blog post and structs are initialized like this: ``` r := Rectangle{} ``` What is the difference between both and how should I know which one to use?

Original source

Related problems