七. 函數閉包
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. 閉包