go 函数 作为类型 - go语言
程序员文章站
2022-03-11 15:06:25
在Go语言中国 可以把 函数作为一种类型 用 type 定义。利用这种特性 ,可以进行类型转换。 可以用作函数参数的 类型 来约束参数。函数的类型转换类型转换的基本格式如下:type_name(expression)package mainimport "fmt"//声明一个函数类型type CalculateType func(int , int )// 该函数类型实现了一个方法func (c *CalculateType) Server() {fmt.Println...
在Go语言中国 可以把 函数作为一种类型 用 type 定义。利用这种特性 ,可以进行类型转换。 可以用作函数参数的 类型 来约束参数。
函数的类型转换
类型转换的基本格式如下:
type_name(expression)
package main
import "fmt"
//声明一个函数类型
type CalculateType func(int , int )
// 该函数类型实现了一个方法
func (c *CalculateType) Server() {
fmt.Println("我是一个函数类型")
}
//加法函数
func add(a, b int) {
fmt.Println( a + b)
}
//乘法函数
func mul(a, b int){
fmt.Println( a * b)
}
func main() {
//加add 函数强制转换成 CalculateType类型
a := CalculateType(add)
//将mul函数强制转换成 CalculateType类型
b := CalculateType(mul)
a(2, 3)
b(2, 3)
a.Server()
b.Server()
}
//5
//6
//我是一个函数类型
//我是一个函数类型
// 如上,声明了一个Calculate Type 函数类型,并实现Serve() 方法,并将拥有相同参数的 add 和 mul 强制转换成
如上,声明了一个Calculate Type 函数类型,并实现Serve() 方法,并将拥有相同参数的 add 和 mul 强制转换成
函数 作为 形参的类型
package main
import "fmt"
//声明一个函数类型
type CalculateType func(int , int )
//加法函数
func add(a, b int) {
fmt.Println( a + b)
}
//乘法函数
func mul(a, b int){
fmt.Println( a * b)
}
func Calculate(a, b int, f CalculateType) {
f(a, b)
}
func main() {
a, b := 2,3
Calculate(a, b, add)
Calculate(a, b, mul)
}
//5
//6
//如上例子,Calculate 的 f 参数 类型为 CalculateType , add 和 mul 函数 具有和 CalculateType 函数类型相同的 参数和返回值,
//因此 可以将 add 和 mul 函数作为参数传入 Calculate 函数中
如上例子,Calculate 的 f 参数 类型为 CalculateType , add 和 mul 函数 具有和 CalculateType 函数类型相同的 参数和返回值, 因此 可以将 add 和 mul 函数作为参数传入 Calculate 函数中
net/http 包 源码例子
本文地址:https://blog.csdn.net/u013862108/article/details/107919391
上一篇: 5G高低频组网,到底是什么意思?
下一篇: MongoDB中如何使用JOIN操作详解