七. 函数闭包
GO语言的函数特色:函数
1. 不须要声明原型spa
2. 支持可变参数code
3. 支持多返回值blog
4. 支持匿名函数和闭包原型
5. 不支持嵌套string
6. 一个包不能有同名函数class
7. 不支持重载匿名函数
8. 不支持默认参数语言
这里重点记录可变参,闭包和延迟调用
7.1. 可变参
// 固定类型的不定参数 func func1(arg ...int) { fmt.Println(arg) } // 任意类型的不定参数 func func2(arg ...interface{}) { fmt.Println(arg) } func main() { func1(1, 2, 3) a := []int{1, 2, 3, 4} func1(a...) // 必须展开 //func1("qwe") // 报错: cannot use "qwe" (type untyped string) as type int in argument to func1 func2(1, 2) func2(a) // [[1 2 3 4]] func2("qwe") }
7.2. 闭包