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
posted @   ty1539  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示