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

相关文章
相关标签/搜索