nil
nilnew()int
var guess *int
guess = new(int)
*guess = 12345

您修改的应用程序:

var guess *int
fmt.Println(guess)
guess = new(int)
*guess = 12345
fmt.Println(guess, *guess)

输出(在Go Playground上尝试):

<nil>
0x10414028 12345

请注意,您可以使用简短的变量声明(例如:

guess := new(int)
*guess = 12345

使指针指向“有用”的另一种方法是将变量的地址分配给指针变量,如下所示:

value := 12345 // will be of type int
guess := &value

但是此解决方案修改了指针值,而不是指针值。尽管在此简单示例中,结果是相同的。

您也可以只分配另一个变量的地址,然后继续更改指向的值:

var value int
guess := &value
*guess = 12345
guessvaluevaluevalueguess
var value int
guess := &value
value = 12345
fmt.Println(*guess) // This will also print 12345

Go Playground上尝试一下