首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >go的数据类型-其他数据类型-function(二)

go的数据类型-其他数据类型-function(二)

原创
作者头像
堕落飞鸟
发布2023-04-20 08:55:50
发布2023-04-20 08:55:50
4420
举报
文章被收录于专栏:飞鸟的专栏飞鸟的专栏

函数类型的使用

函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数:

代码语言:javascript
复制
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类型的参数ab,并返回一个int类型的结果。然后,我们定义了两个函数AddSubtract,它们分别实现了加法和减法运算。接着,我们定义了一个名为Calculate的函数,它接受两个int类型的参数ab,以及一个函数类型的参数op,并通过op调用具体的运算函数。最后,我们通过Calculate函数调用AddSubtract函数,并输出结果。

除了作为参数传递给其他函数之外,函数类型还可以作为返回值返回。例如,下面的示例演示了如何定义一个返回函数类型的函数:

代码语言:javascript
复制
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函数,并输出结果。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 函数类型的使用
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档