Что означает «*» и «&» на Голанге?

Я новичок в Голанге, и я делаюhttp://tour.golang.org/, Может ли кто-нибудь объяснить мнелинии 1,3,5 и 7 эта функция, особенно что '*' и '&' делают? Я имею в виду, упоминая их в объявлении функции, что они должны / должны делать? Игрушечный пример:

1: func intial1(var1 int, var2 int, func1.newfunc[]) *callproperfunction {
2:
3: addition:= make ([] add1, var1)
4: for i:=1;i<var2;i++ {
5:   var2 [i] = *addtother (randomstring(lengthofcurrent))
6:   }
7: return &callproperfunction {var1 int, var2 int, func1.newfunc[], jackpot}
8: }

Кажется, что они такие же, как у нас в C ++. Но я не могу связать эти понятия с тем, что мы имеем здесь. Другими словами, что '*' an '&' делает, когда я использую их в объявлении функции в Go.

Редактировать: Я знаю, что означают ссылки и разыменования. Что я не могу понять, так это то, как мы можем использовать указатель на функцию - это Голанг. например, строки 1 и 7, что делают эти две строки? мы объявили функцию с именем intial1, которая возвращает указатель? и в строке 7 мы вызываем его с аргументами, используя функцию возврата.

Ответы на вопрос(3)

Ваш ответ на вопрос