Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
48 lines (35 sloc) 1014 Bytes

参数为指针的函数

函数可以有指针类型的参数。ptrFun.go 的代码将说明指针作为函数参数的使用。

ptfFun.go 的第一部分如下:

package main

import (
    "fmt"
)

func getPtr(v *float64) float64 {
    return *v * *v
}

getPrt() 函数接收一个指向 float64 值的指针。

第二段代码如下:

func main() {
    x := 12.2
    fmt.Println(getPrt(&x))
    x = 12
    fmt.Println(getPtr(&x))
}

这里您需要传递变量的地址给 getPtr() 函数,因为它需要一个指针参数,传地址需要在变量前放一个 & 符号(&x)。

执行 ptrFun.go 产生如下输出:

$go run ptrFun.go
148.83999999999997
144

如果您直接传值如:12.2getPtr(),并调用它如:getPtr(12.12),那么程序编译失败,显示下面的错误信息:

$go run ptrFun.go
# command-line-arguments
./ptrFun.go:15:21: cannot use 12.12 (type float64) as type *float64 in argument to getPtr
You can’t perform that action at this time.