Go 基本指标
示例
Go支持指针,使您可以将引用传递给程序中的值和记录。
package main import "fmt" //我们将展示指针与值相反的工作方式 //2个功能:“zeroval”和“zeroptr”。`zeroval`具有一个 //`int`参数,因此参数将被传递给它 //值。`zeroval`将获得`ival`的副本 //从调用函数中的一个。 func zeroval(ival int) { ival = 0 } //相反,“zeroptr”具有一个“*int”参数,这意味着 //它需要一个`int`指针。的*iptr代码 //然后,函数主体从其函数_dereferences_ //内存地址到该地址的当前值。 //为取消引用的指针分配值会更改 //引用地址的值。 func zeroptr(iptr *int) { *iptr = 0 }
定义这些功能后,您可以执行以下操作:
func main() { i := 1 fmt.Println("initial:", i) //首字母:1 zeroval(i) fmt.Println("zeroval:", i) //零值:1 //我i仍然等于1,因为编辑了Zeroval // a "copy" of `i`, not the original. // The `&i` syntax gives the memory address of `i`, //即指向“i”的指针。当调用`zeroptr`时, // it will edit the "original" `i`. zeroptr(&i) fmt.Println("zeroptr:", i) //zeroptr:0 //指针也可以打印。 fmt.Println("pointer:", &i) //指针:0x10434114 }
试试这个代码