33. 头等函数(first-class function)

原文:https://golangbot.com/first-class-functions/


欢迎访问 Golang 教程33教程系列.

什么是头等函数?

支持头等函数的语言允许将函数分配给变量,作为参数传递给其他函数并从其他函数返回。 Go就支持这一功能。

在本教程中, 我们将讨论头等函数的语法和各种用例。

匿名函数

让我们从一个将函数赋给变量的简单示例开始。

package main

import (  
    "fmt"
)

func main() {  
    a := func() {
        fmt.Println("hello world first class function")
    }
    a()
    fmt.Printf("%T", a)
}

在线运行

在上面的程序中, 我们在第8行给变量a分配了一个函数。这是将函数赋给变量的语法。如果仔细看, 分配给a的函数是没有名称的。这种函数称为匿名函数, 因为它们没有名称。

调用此函数的唯一方法是使用变量a。我们在下一行使用a()调用了该函数, 并打印 hello world first class function。在第12行, 我们打印变量a的类型。这将打印函数func()。

运行此程序将输出

hello world first class function  
func()  

也可以调用匿名函数而不将其赋给变量。让我们看看下面的示例中如何完成此操作。

package main

import (  
    "fmt"
)

func main() {  
    func() {
        fmt.Println("hello world first class function")
    }()
}

在线运行

在上面的程序中, 匿名函数是在第8行定义的, 在函数定义之后, 我们在第10行使用()来调用函数。这个程序将输出:

hello world first class function  

也可以像其他函数一样将参数传递给匿名函数。

package main

import (  
    "fmt"
)

func main() {  
    func(n string) {
        fmt.Println("Welcome", n)
    }("Gophers")
}

在线运行

在上面的程

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值