Go语言之函数指针和指针函数

2020-06-01  本文已影响0人  测试探索
函数指针

一个指针,指向了一个函数的指针
因为go语言中,function,默认看做一个指针,没有*
slice,map,function

package main

import "fmt"

func main() {
    var a func()
    a = fun1
    a()
}

func fun1(){
    fmt.Println("fun1()...")
}
//结果
fun1()...

指针函数
package main

import "fmt"

func main() {
    var a func()
    a = fun1
    a()

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

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

func fun3()*[4]int{
    arr := [4]int{5,6,7,8}
    return &arr
}

func fun2()[4]int{
    arr := [4]int{1,2,3,4}
    return arr
}
func fun1(){
    fmt.Println("fun1()...")
}
//结果
fun1()...
arr1的类型:[4]int,地址:0xc000010360,数值:[1 2 3 4]
arr2的类型:*[4]int,地址:0xc000006030,数值:&[5 6 7 8]

上一篇 下一篇

猜你喜欢

热点阅读