go语言函数作为值、类型,并作为参数传递给另一个函数

go语言编程中,可以用type来定义函数的别名,那么该函数将成为一种类型,因此该类型的变量就拥有相同的参数和返回值。


go语言函数作为值和类型

基本的定义方式

type typeName func(arg1type1, arg2 type2...)(result1 result_type1, result2 result_type2...)

go语言函数作为值和类型有什么用

把go函数当做值或类型,可用于作为函数的参数进行传递,进而用于一些通用接口的设计。


函数作为值和类型实例

package main

import "fmt"

type speak func(string) //用type声明一个函数类型

func man(msg string) {
	fmt.Println("我是一个男士,", msg)
}

func woman(msg string) {
	fmt.Println("我是一个女士,", msg)
}

func human(msg string, f speak) {
	f(msg)
}

func main() {
	a := "喜欢打篮球"
	b := "喜欢打羽毛球"
	human(a, man) //将函数作为值传递
	human(b, woman)

}


代码输出:
我是一个男士, 喜欢打篮球
我是一个女士, 喜欢打羽毛球

全栈后端 / go语法 :













Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.