Go 将函数作为值传递

Go 将函数作为值传递,Go语言提供了一些函数式编程功能,如能够将一个函数作为参数传递给其他函数。这看起来像《盗梦空间》中的情形,但提供了强大的功能。从本质上说,Go将函数视为一种类型,因此可将函数赋给变量,以后再通过变量来调用它们。在下面的示例中,将一个函数赋给了变量fn。

func main() {
fn := func() {
fmt.Println("function called")
}
fn()
}
  • 使用前面介绍的简短变量赋值运算符将一个函数赋给了变量fn。
  • 声明这个函数并将其定义为打印一行文本,让您知道它被调用了。
  • 在变量名fn后使用( )调用这个函数。

别忘了,在Go语言中,函数是一种类型,因此可将其传递给其他函数。我们可对前一个示例进行扩展,将变量fn传递给一个函数,并在这个函数中调用它,如程序所示。

 package main

 import "fmt"

 func anotherFunction(f func() string) string {
  return f()
 }

 func main() {
  fn := func() string {
   return "function called"
  }
  fmt.Println(anotherFunction(fn))
 }

输出结果:
Go 将函数作为值传递

请注意,函数anotherFunction的签名中包含一个子函数签名,这表明这个参数是一个返回字符串的函数。接受函数依然需要声明其返回类型,它可以是任何类型,但这里也是字符串。

酷客教程相关文章:

赞(0)

评论 抢沙发

评论前必须登录!