美文网首页
Go语言中的匿名函数

Go语言中的匿名函数

作者: louyang | 来源:发表于2021-06-16 15:17 被阅读0次

1 什么是匿名函数

在Go语言中,不需要函数名的函数,称为匿名函数。例如正常的函数sayHello()是这样的:

package main

import "fmt"

func sayHello() {
    fmt.Println("Hello!")
}

func main() {
    sayHello();
}

匿名函数是这样的:

package main

import "fmt"

func main() {
    func() {
        fmt.Println("Hello!")
    } ()
}

正常函数的语法是:

func function_name(parameter_list) (return_type) {
    // code..
}

而匿名函数的语法则少了function_name

func (parameter_list) (return_type) {
    // code..
}

有一点要注意的是,上面是声明了一个匿名函数,而下面价格小括号则是调用匿名函数:

func (parameter_list) (return_type) {
    // code..
} ()

匿名函数可以有入参,例如:

package main

import "fmt"

func main() {
    func(str string) {
        fmt.Println(str)
    } ("Hello!")
}

2 匿名函数可以做为值赋给一个变量

package main

import "fmt"

func main() {
    vari := func() {
        fmt.Println("Hello!")
    }
    vari()
}

既然匿名函数可以是一个值,那么匿名函数就可以做为函数的入参和返回值。

下面这个例子是匿名函数成为了另一个函数的入参:

package main

import "fmt"

func do(action func()) {
    action()
}

func main() {
    say_hello := func() {
        fmt.Println("Hello!")
    }
    do(say_hello)
}

下面这个例子是匿名函数成为了另一个函数的返回值:

package main

import "fmt"

func get_action() func() {
    return func() {
        fmt.Println("Hello!")
    }
}

func main() {
    action := get_action()
    action()
}

参考

https://www.geeksforgeeks.org/anonymous-function-in-go-language/
https://www.programmersought.com/article/67192338855/
https://www.bogotobogo.com/GoLang/GoLang_Closures_Anonymous_Functions.php

相关文章

  • Go语言中的函数 为什么是一等公民

    关键点 Go语言中,支持: 普通函数 匿名函数 闭包 在Go语言中,函数属于一等公民(first-class)? ...

  • Go语言中的匿名函数

    1 什么是匿名函数 在Go语言中,不需要函数名的函数,称为匿名函数。例如正常的函数sayHello()是这样的: ...

  • 【go语言学习】函数function

    函数是组织好的、可重复使用的、用于执行指定任务的代码块。Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属...

  • 13. Go语言基础之函数

    前言 函数是组织好的、可重复使用的、用于执行指定任务的代码块。Go语言中支持函数、匿名函数和闭包 13.1 函数 ...

  • Go语言函数

    只描述和C语言中函数的区别 Go语言函数不需要声明 Go语言的函数是一等公民,和变量一样,可以赋值给某一变量(匿名...

  • 11 Golang函数详解

    Go语言中支持:函数、匿名函数和闭包 定义函数使用func关键字 注意:函数名由字母、数字、下划线组成,但不能以字...

  • Go语言之匿名函数

    欢迎关注微信号 一、Go语言中的匿名函数 指的是不需要有名字的函数,通常定义在另外一个函数内部。 格式: func...

  • go 匿名函数

    Go支持匿名函数,如果我们某个函数只是希望使用一次,可以考虑使用匿名函数,匿名函数也可以实现多次调用1、匿名函数使...

  • Golang基础(五)——函数二

    Golang基础(五)——函数二 @([07] golang)[Go总结] 匿名函数 匿名函数就是将一个函数直接赋...

  • Golang学习笔记-函数

    Go函数定义格式如下: 例如: Go可以很灵活的创建函数,并作为另外一个函数的实参: Go支持匿名函数,可作为闭包...

网友评论

      本文标题:Go语言中的匿名函数

      本文链接:https://www.haomeiwen.com/subject/viuxyltx.html