golang 传入函数作为参数类型

版权声明:本文为原创文章,未经允许不得转载 https://blog.csdn.net/qq_33875256/article/details/85138339
package main

import "fmt"

#################################################################################################

type shichangdi2 func(string)(int)

可以这样定义函数格式的类型,即相同输入输出值的函数都为此类型

同时也可以这样定义函数的额传入传出类型,即:

func test1(hehe shichangdi2){
	var shi string
	hehe(shi)
}
func test2(string2 string)(int) {
	fmt.Println("君不见,黄河之水天上来,奔流到海不复回")
	var shi int
	return shi
}
func test3(string2 string)(int) {
	fmt.Println("君不见,高堂明镜悲白发,朝如青丝暮成雪")
	var shi int
	return shi
}
func main() {
	//a := "10"
	test1(test2)
	test1(test3)
}

输出结果:

这样可以以所有传入传出类型都一样的函数作为参数传入此函数。即test2和test3的传入传出类型一样,但是函数体可以不同。

猜你喜欢

转载自blog.csdn.net/qq_33875256/article/details/85138339