写在前面
习惯性的在写内容前说点儿什么,个人感觉Go语言中的函数字面量这个东西用着不是很顺手,所以想着总结一下,今天先从简单的开始。持续更新
给出概念
命名函数的作用范围是包级别的,这个大家都知道。如果想在程序的任意表达式中使用一个变量来表达函数,那便需要:函数字面量。函数字面量类似于函数申明,只不过其实际是一个变量,而此变量的值是一个匿名函数。如下所示:
func lbw() func() int {
return func() int{
}
}
其实可以这么理解,lbw这个字面量指的是一个返回值为func() int的函数,所以你需要在其声明中return一个func() int。
实际例子
利用函数,输出自然数1 2 3 …的平方值。
package main
import "fmt"
func main() {
f := squares()
fmt.Println(f())
fmt.Println(f())
fmt.Println(f()