Go 函数指针与指针函数

时间:2025-02-24 15:45:39

函数指针:

定义:一个指针,指向一个函数的指针,在go语言中,function默认看作一个指针

package main

import "fmt"


func fun1() {
    ("func1...")
}

func main() {
    var a func()
    a = func1
    a()   // 调用fun1函数
}

指针函数:

定义:一个函数,该函数的返回值是一个指针

package main

import "fmt"


func fun2() [4]int {
    arr := [4]int{1,2,3,4}
    return arr
}

func fun3() *[4]int {
    arr := [4]int{1,2,3,4}
    return &arr
}

func main() {
    arr1 := fun2()
    ("arr1的类型:%T,地址:%p,数值:%v\n", arr1,&arr1,arr1)
    // arr1的类型:[4]int,地址:0xc0000101c0,数值:[1 2 3 4]

    arr2 := fun3()
    ("arr2的类型:%T,地址:%p,数值:%v\n", arr2,&arr2,arr2)
    // arr2的类型:*[4]int,地址:0xc000006030,数值:&[1 2 3 4]
}