golang 函数类型

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

通过type定义函数类型

type typeName func(arguments) retType

函数类型也是一种类型,故可以将其定义为函数入参,在 go 语言中函数名可以看做是函数类型的常量,所以我们可以直接将函数名作为参数传入的函数中。

复制代码
package main

import "fmt"

func add(a, b int) int {
    return a + b
}

//sub作为函数名可以看成是 op 类型的常量
func sub(a, b int) int {
    return a - b
}

//定义函数类型 op
type op func(a, b int) int

//形参指定传入参数为函数类型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)
}
 
复制代码

 

posted @   Mr.peter  阅读(215)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2021-03-26 PHP-FPM
2021-03-26 go main.main之前的准备
2021-03-26 由于找不到MSVCR120.dll,无法继续执行代码
点击右上角即可分享
微信分享提示