Go 函数指针与指针函数

函数指针:

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

package main

import "fmt"


func fun1() {
    fmt.Println("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()
    fmt.Printf("arr1的类型:%T,地址:%p,数值:%v\n", arr1,&arr1,arr1)
    // arr1的类型:[4]int,地址:0xc0000101c0,数值:[1 2 3 4]

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值