【发布时间】:2016-07-03 17:42:42
【问题描述】:
我正在做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++ 中的指针。但我无法将这些概念与我们这里的概念联系起来。换句话说,当我在 Go 的函数声明中使用 '*' 和 '&' 时会做什么。
我知道引用和取消引用是什么意思。我不明白我们如何在 Go 中使用指向函数的指针?例如第 1 行和第 7 行,这两行是做什么的?声明了名为 intial1 的函数返回一个指针?在第 7 行,我们使用 return 函数带参数调用它。
【问题讨论】:
-
那些是指针,就像我们在 C++ 中一样。
-
它们是指针。您可以访问golang-book.com/books/intro/8 了解有关指针的更多信息。
-
@turhanco,我知道他们是指针。但例如第 5 行和第 7 行是做什么的?它们是函数而不是变量。
-
@David,您的示例看起来不像是有效的 Go 代码。写一个合适的例子,理想情况下可以在 golang.org 上运行。但无论如何,Go 指针与 C++ 中的指针几乎相同。你得到一个带有
&的指针并用*取消引用它。*也用于声明指针类型。就像在 C++ 中一样。 -
@creker,我的问题在第 1 行和第 7 行,其中使用了 callproperfunction,但我无法理解这两行的作用。
标签: go