What is the meaning of '*' and '&'?
<p>I am doing the <a href="http://tour.golang.org/" rel="noreferrer">http://tour.golang.org/</a>. Could anyone explain this function to me <strong>lines 1,3,5 and 7</strong>, especially what '*' and '&amp;' do? By mentioning them in a function declaration, what are they supposed/expected to do? A toy example:</p>
<pre class="lang-golang prettyprint-override"><code>    1: func intial1(var1 int, var2 int, func1.newfunc[]) *callproperfunction {
    2:
    3:    addition:= make ([] add1, var1)
    4:    for i:=1;i&lt;var2;i++ {
    5:       var2 [i] = *addtother (randomstring(lengthofcurrent))
    6:    }
    7:    return &amp;callproperfunction {var1 int, var2 int, func1.newfunc[], jackpot}
    8: }
</code></pre>
<p>It seems that they are pointers like what we have in C++. But I cannot connect those concepts to what we have here. In other words, what '*' an '&amp;' do when I use them in function declaration in Go.</p>
<p>I know what reference and dereference mean. I cannot understand how we can use a pointer to a function in Go? For example lines 1 and 7, what do these two lines do? The function named intial1 is declared that returns a pointer? And in line 7, we call it with arguments using the return function.</p>