首页后端开发GOgo的数据类型-其他数据类型-function(二)

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

时间2023-04-26 12:36:02发布访客分类GO浏览1427
导读:函数类型的使用函数类型可以像其他类型一样被传递、嵌套和返回。例如,下面的示例演示了如何将一个函数类型作为参数传递给另一个函数: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类型的参数ab,并返回一个int类型的结果。然后,我们定义了两个函数AddSubtract,它们分别实现了加法和减法运算。接着,我们定义了一个名为Calculate的函数,它接受两个int类型的参数ab,以及一个函数类型的参数op,并通过op调用具体的运算函数。最后,我们通过Calculate函数调用AddSubtract函数,并输出结果。

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

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

若转载请注明出处: go的数据类型-其他数据类型-function(二)
本文地址: https://pptw.com/jishu/9232.html
go的数据类型-其他数据类型-interface(一) go的数据类型-其他数据类型-function(一)

游客 回复需填写必要信息