GO學習筆記(7)

七. 函數閉包

  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. 閉包

相關文章
相關標籤/搜索