Go语言的type func()用法
golang通过type定义函数类型
在 Go 语言中,type 可以定义任何自定义的类型
比如熟悉的:type dog struct{}
,type myInt int
等等
所以 func 也是可以作为类型自定义的,type myFunc func(int) int
,意思是自定义了一个叫 myFunc 的函数类型,这个函数的签名必须符合输入为 int,输出为 int。
golang通过type定义函数类型
通过 type 可以定义函数类型,格式如下
type typeName func(arguments) retType
函数类型也是一种类型,故可以将其定义为函数入参 ,在 go 语言中函数名可以看做是函数类型的常量,所以我们可以直接将函数名作为参数传入的函数中。
demo
package main
import "fmt"
//add函数也实现了op的函数签名,可以被认为是op的一种实现
func add(a, b int) int {
return a + b
}
//sub符合op的签名,所以函数名可以看成是 op 类型的常量或者实现
func sub(a, b int) int {
return a - b
}
//定义函数类型 op 的签名
type op func(a, b int) int
//这个函数的第一个参数指定了一个函数签名op,只要符合op函数签名的函数,就可以作为参数传入
func Oper(fu op, a, b int) int {
return fu(a, b)
}
func main() {
//在go语言中函数名可以看做是函数类型的常量,所以我们可以直接将函数名作为参数传入的函数中。
aa := Oper(add, 1, 2)
fmt.Println(aa)
bb := Oper(sub, 1, 2)
fmt.Println(bb)
}
本文来自博客园,作者:厚礼蝎,转载请注明原文链接:https://www.cnblogs.com/guangdelw/p/17380500.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南