go的数据类型-其他数据类型-function(二)
导读:函数类型的使用函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数:type Operation func(a, b int int func Add(a, b int int...
函数类型的使用
函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数:
type Operation func(a, b int) int
func Add(a, b int) int {
return a + b
}
func Subtract(a, b int) int {
return a - b
}
func Calculate(a, b int, op Operation) int {
return op(a, b)
}
func main() {
fmt.Println(Calculate(1, 2, Add)) // 输出3
fmt.Println(Calculate(1, 2, Subtract)) // 输出-1
}
在这个示例中,我们定义了一个名为Operation
的函数类型,它接受两个int
类型的参数a
和b
,并返回一个int
类型的结果。然后,我们定义了两个函数Add
和Subtract
,它们分别实现了加法和减法运算。接着,我们定义了一个名为Calculate
的函数,它接受两个int
类型的参数a
和b
,以及一个函数类型的参数op
,并通过op
调用具体的运算函数。最后,我们通过Calculate
函数调用Add
和Subtract
函数,并输出结果。
除了作为参数传递给其他函数之外,函数类型还可以作为返回值返回。例如,下面的示例演示了如何定义一个返回函数类型的函数:
type Adder func(int) int
func Add(a int) Adder {
return func(b int) int {
return a + b
}
}
func main() {
addTwo := Add(2)
fmt.Println(addTwo(3)) // 输出5
}
在这个示例中,我们定义了一个名为Adder
的函数类型,它接受一个int
类型的参数,并返回一个int
类型的结果。然后,我们定义了一个名为Add
的函数,它接受一个int
类型的参数a
,并返回一个匿名函数,该匿名函数接受一个int
类型的参数b
,并返回a+b
的结果。最后,我们通过Add
函数定义了一个名为addTwo
的函数类型变量,并将其初始化为Add(2)
,即addTwo
是一个接受一个int
类型的参数,并返回该参数与2
的和的函数。最后,我们通过addTwo
函数调用Add
函数,并输出结果。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: go的数据类型-其他数据类型-function(二)
本文地址: https://pptw.com/jishu/9232.html