千家信息网

Go语言的type func()怎么用

发表于:2025-11-14 作者:千家信息网编辑
千家信息网最后更新 2025年11月14日,这篇文章主要为大家展示了"Go语言的type func()怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Go语言的type func()怎么用"这篇
千家信息网最后更新 2025年11月14日Go语言的type func()怎么用

这篇文章主要为大家展示了"Go语言的type func()怎么用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Go语言的type func()怎么用"这篇文章吧。

一、前置基础

1. go 函数基础

在Go语言中,函数的基本组成为:关键字func、函数名、参数列表、返回值、函数体和返回语句。

func 函数名(参数列表) 返回值类型 {函数体内部}

Go语言是强数据类型的语言,参数是要指定类型的不然就报错。func 是函数的声明关键字。

1) 返回值
返回值的定义,是可以给返回值取一个名称的,还有一点是和其他的编程语言不一样的是在Go语言中函数的返回值可以有多个的

func addTwoNumber(a int, b int) (int, int) {return a+b, a-b}

同时可以给返回值取一个别名

func addTwoNumber(a int, b int) (sum, dif int) {return a+b, a-b}

像这样给返回值取完名字后可以给返回值直接赋值

func addTwoNumber(a int, b int) (sum, dif int) {sum = a+bdif = a-breturn}

同样这样也是可以直接返回sum,和dif两个值的。

2) 函数可变参数

func sum(numbers ...int) int {s := 0for i := range numbers{s += i}return s}func main() {fmt.Println(sum(1,2,3,4,5))}

像这样我们就可以传给sum函数多个值了。

2. 函数签名

函数类型 又叫 函数签名 , 一个函数 的类型就是函数定义首行去掉函数名、参数名和{,可以 使用 fmt.Printf 的"%T"格式化参数打印函数的类型。

函数类型相同
两个函数类型相同的条件是**:拥有相同的形参列表和返回值列表(列表元素的次序、个数和类型都相同),形参名可以不同 。** 以下 3 个函数的函数类型完全一样。

func add (a , b int) int { return a + b }func sub (c int, d int) int { return c - d }func mul (e int, f int) int { return e * f }

验证demo

package mainimport "fmt"func add(a, b int) int     { return a + b }func sub(c int, d int) int { return c - d }func mul(e int, f int) int { return e * f }func main() {        fmt.Printf("%T\n", add)        fmt.Printf("%T\n", sub)        fmt.Printf("%T\n", mul)}

执行go run test.go输出结果如下:

func(int, int) int
func(int, int) int
func(int, int) int

二、Go语言的type func()用法 | type func() 自定义函数类型

1. 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 mainimport "fmt"func add(a, b int) int {        return a + b}//sub作为函数名可以看成是 op 类型的常量func sub(a, b int) int {        return a - b//定义函数类型 optype op func(a, b int) int//形参指定传入参数为函数类型opfunc 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)

以上是"Go语言的type func()怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

函数 类型 语言 参数 相同 内容 常量 篇文章 形参 两个 关键 关键字 名作 基础 多个 格式 学习 帮助 输出 验证 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市深海娱游网络技术 莱阳定制软件开发 广州市幸福网络技术招聘 数据库缓存技术类书籍 深圳倍升互联网科技 学软件开发需要学什么资料 湖南本地软件开发价格大全 福州缤果网络技术有限公司咋样 计算机网络技术是学什么专业 智能软件开发方向是什么 国家网络安全事件应急预案 缺点 软件开发人员第二副业做什么 阿里云备案 更换服务器 数据库调整至窗体大小在哪 计算机网络技术好学吗人计算 wow 平衡 服务器 网站维护和软件开发 网络安全审计条例 新技术防护网络安全 宁津软件开发专业 一年级网络安全ppt课件 计算机网络技术英语水平 我们应该注意网络安全 逍客启动显示服务器异常 新党章网络安全法 软件开发人员第二副业做什么 vue按钮点击下载服务器文件 艾联朴浪上海软件开发有限公司 软件开发完成新收入准则 乐亭普法解读网络安全法第24条
0