指向非复合文字的指针

Cri*_*ole 8 go

是否有建立的模式来获取非复合文字的指针?

x := 5
y := &x
Run Code Online (Sandbox Code Playgroud)

上面的代码有效,但非常冗长.

Dar*_*tle 9

如果我理解正确的唯一一点x就是分配int,我推荐一些更"冗长"的东西:

y := new(int)
*y = 5
Run Code Online (Sandbox Code Playgroud)

我觉得它没有比你的更短.由于&运算符要求其操作数可以是可寻址的,也可以是复合文字,因此您可能会执行您正在执行的操作以获得可寻址的内容,或者您​​可以执行我的建议并&完全避免.

  • 如果它是一个常见的类型,可以将它包装在一个函数中,例如`func intPtr(i int)*int {return&i} func main(){y:= intPtr(5)}`http:// play.golang.org/p/bIOUAua2b5 (2认同)