3.2 Go语言中的匿名函数

Posted 孙琦Ray

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.2 Go语言中的匿名函数相关的知识,希望对你有一定的参考价值。

Go不允许函数嵌套,但是可以定义匿名函数,后续配合Goroutine的使用,很轻松的构建并发程序。

语法定义

匿名函数一般是在函数体内的独立逻辑,与函数定义类似,但是由于其特殊位置,在使用时需要注意:

  • 在定义时主要为参数列表和返回值,如果不定义返回值类型,就不要使用return
  • 在定义的尾部不要忘了执行,即(),否则会看到定义未使用的提示(func literal evaluated but not used);当然在Go语言中我们是可以将函数整体复制给变量的,后续只需要变量后面加()执行即可
  • 与正常带返回值的函数一样,接受返回值的时候,需要提供一个变量
func(Parameter-list) (Return-Type)
// code..

// Use return statement if Return-Type are given
// if Return-Type is not given, then do not 
// use return statement
return
()

无返回值

package main

import "fmt"

func main() 
    func () 
        fmt.Println("Hello, World")
    ()

有返回值

package main

import "fmt"

func main() 
    msg := func () string 
        return "Hello, World"
    ()

    fmt.Println(msg)

传入参数

package main

import "fmt"

func main() 
    func (s string) 
        fmt.Println(s)
    ("Hello, World")

函数赋值给变量

package main

import "fmt"

func main() 
    myFunc := func (s string) 
        fmt.Println(s)
    

    myFunc("Hello, World")

以上是关于3.2 Go语言中的匿名函数的主要内容,如果未能解决你的问题,请参考以下文章

Golang basic_leaming4 函数

Golang basic_leaming4 函数

go语言学习笔记 — 函数:匿名函数 —— 没有函数名的函数

go语言学习笔记 — 基础 — 函数:闭包(closure)—— 引用了外部变量的匿名函数

go语言的匿名函数

Go语言的匿名函数与闭包的一些理解