程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Go语言零到一:函数(go语言函数式编程)

balukai 2025-07-14 14:49:28 文章精选 3 ℃

函数是 Go 语言中的基本构建块之一,用于封装可重用的代码片段。通过定义函数,你可以将复杂的程序分解为更小、更容易管理和测试的部分。

1. 函数声明

  • 基本语法
    • 使用 func 关键字定义函数。
    • 示例:
func functionName(parameters) (returnValues) {
 // 函数体
}
  • 参数
    • 参数列表放在圆括号 () 中。
    • 参数可以是任意类型。
    • 示例:
func add(x, y int) int {
 return x + y
}
  • 返回值
    • 函数可以有一个或多个返回值。
    • 返回值的类型放在圆括号 () 中。
    • 示例:
func divide(x, y int) (int, error) {
 if y == 0 {
 return 0, errors.New("division by zero")
 }
 return x / y, nil
}
  • 多返回值
    • 函数可以返回多个值。
    • 示例:
func swap(x, y string) (string, string) {
 return y, x
}
  • 可变参数
    • 使用 ... 表示可变参数。
    • 示例:
func sum(numbers ...int) int {
 total := 0
 for _, number := range numbers {
 total += number
 }
 return total
}

2. 函数调用

  • 调用函数
    • 使用函数名后跟圆括号,并传入相应的参数。
    • 示例:
    • result := add(10, 20)
  • 调用多返回值函数
    • 可以直接赋值给多个变量。
    • 示例:
    • quotient, err := divide(10, 2)
  • 调用可变参数函数
    • 传入任意数量的参数。
    • 示例:
    • total := sum(1, 2, 3, 4, 5)

3. 匿名函数

  • 定义匿名函数
    • 不需要指定函数名。
    • 示例:
func() {
 fmt.Println("Hello, anonymous function!")
}()
  • 闭包
    • 函数可以捕获其周围的变量。
    • 示例:
func createCounter() func() int {
 count := 0
 return func() int {
 count++
 return count
 }
}
  • 作为参数传递
    • 函数可以作为其他函数的参数。
    • 示例:
func apply(f func(int) int, x int) int {
 return f(x)
}
  • 作为返回值
    • 函数可以作为其他函数的返回值。
    • 示例:
func getIncrementer(amount int) func(int) int {
 return func(x int) int {
 return x + amount
 }
}

Tags:

最近发表
标签列表