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
}

试试这个代码