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]