Golang 函数

Go 语言的函数是一个独立的代码块,可用于执行特定任务的代码段。函数可以接受任意数量的参数并返回任意数量的值。

在 Go 语言中,定义函数的语法如下:

func function_name( [parameter list] ) [return_types] {
   body of the function
}

函数可以接受任意数量的参数。如果不需要参数,可以使用空参数列表。如果不需要返回值,可以省略 return_types。

以下是 Go 语言中如何定义和调用函数的示例:

package main

import "fmt"

func add(x int, y int) int {
    return x + y
}

func main() {
    result := add(1, 2)
    fmt.Println("Result:", result)
}

在 Go 语言中,还支持多值返回,即函数可以返回多个值。

package main

import "fmt"

func swap(x int, y int) (int, int) {
    return y, x
}

func main() {
    x, y := swap(1, 2)
    fmt.Println("Swapped:", x, y)
}

Go 语言中还支持匿名函数,即没有名称的函数。

package main

import "fmt"

func main() {
    anonymous := func(x int) {
        fmt.Println("Anonymous function:", x)
    }
    anonymous(10)
}

以上是 Go 语言中的函数介绍。它们是代码重用和分离任务的有效方法,并可以使代码更加有效且易于维护。

Go 语言中的函数也支持可变长参数,这意味着函数可以接受任意数量的参数。可变长参数必须放在参数列表的最后。

package main

import "fmt"

func sum(nums ...int) int {
    total := 0
    for _, num := range nums {
        total += num
    }
    return total
}

func main() {
    result := sum(1, 2, 3, 4, 5)
    fmt.Println("Result:", result)
}

Go 语言中也支持高阶函数,即函数可以作为参数或返回值。

package main

import "fmt"

func apply(op func(int, int) int, a int, b int) int {
    return op(a, b)
}

func add(x int, y int) int {
    return x + y
}

func main() {
    result := apply(add, 1, 2)
    fmt.Println("Result:", result)
}

Go 语言中也支持闭包,即在函数内部定义的函数。

package main

import "fmt"

func closure() func() int {
    x := 0
    return func() int {
        x++
        return x
    }
}

func main() {
    counter := closure()
    fmt.Println("Counter 1:", counter())
    fmt.Println("Counter 2:", counter())
    fmt.Println("Counter 3:", counter())
}

这些特性使得 Go 语言的函数非常强大且灵活,并可以应对各种编程需求。