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
}试试这个代码