go 函数也是一种类型, 匿名函数
/* 函数也是一种类型 */
package main
import (
"fmt"
)
/* 自定义函数类型 接受两个int参数,返回int类型*/
type op_func func(int, int) int
func main() {
test_func()
}
func test_func() {
/* 声明变量c 类型为自定义类型 */
var c op_func
/* add函数赋值给c add函数接受两个int参数,返回int类型 */
c = add
sum := c(100, 103)
fmt.Println(sum)
/* 调用自定义函数,传递c变量 */
sum = op(c, 100, 130)
fmt.Println(sum)
/* 调用自定义函数,传递sub函数 */
sum = op(sub, 200, 100)
fmt.Println(sum)
// sum = op(sub1, 100, 200) //编译报错,sub1函数接受三个参数,不符合自定义类型
/* 声明并调用匿名函数 */
result := func(a, b int) int {
return a + b
}(100, 200)
fmt.Println("匿名函数100+200=", result)
}
func add(a, b int) int {
return a + b
}
func sub(a int, b int) int {
return a - b
}
func sub1(a, b, c int) int {
return c - b - a
}
/* 自定义op函数,接受自定义类型参数 两个int类型 */
func op(op op_func, a, b int) int {
return op(a, b)
}
输出:
203
230
100
匿名函数100+200= 300
写入自己的博客中才能记得长久
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!