Nivelle 开拓视野冲破艰险看见世界 身临其境贴近彼此感受生活

go学习第五篇(匿名函数)

2018-09-01
go

匿名函数

匿名函数由一个不带函数名的函数声明和函数体组成。可以直接赋值给一个宾亮,作为结构字段,或者把它传递到另外的函数中或者直接执行。

定义一个匿名函数并调用执行,如果在声明匿名函数时指定了参数接收列表,那么在调用执行时,也必须带上参数执行。

package main

import (
	"fmt"
)

func main() {

	fn := func(a int) int {
		return a
	}(2)

	fmt.Println(fn)

}



结果:

/usr/local/Cellar/go/1.11/libexec/bin/go run valueTest.go [/Users/nivellefu/golearn-gotype/learn0901926.go]
2
成功: 进程退出代码 0.


匿名函数常见用法

  • 函数集合
package main

import (
	"fmt"
)

func main() {

	fns := [](func(x int) int){
		func(x int) int { return x + 1 },
		func(x int) int { return x + 2 },
		func(x int) int { return x + 3 },
	}
	fmt.Println(fns[2](2))

}


结果:

5

  • 函数作为字段

评论