美文网首页
Golang筑基 ——函数

Golang筑基 ——函数

作者: 鬼厉 | 来源:发表于2020-06-29 16:37 被阅读0次

    定义

    golang函数的定义:

    func 函数名(参数) 返回参数{
      //函数体
    }
    

    特点

    在golang中至少有一个main函数
    每个包只能有一个main函数
    golang函数的功能相比于C/C++更便捷,golang函数可以返回多个值,这极大地方便了使用

    1. golang函数可以返回多个值

    下面的函数返回了int 和error两个值,利用这个特性我们就可以判断函数内的执行情况,并做出决策,终止运行或者返回错误。

    func GetData() (int, error){
      return 0, nil
    }
    
    2. golang的函数均包含 func 关键字
    3. golang支持匿名函数(即闭包)

    匿名函数就是没有名字的函数,其用途有以下几种:

    1.匿名函数赋给变量
    // 匿名函数赋给变量
    data := func(a int){
       fmt.Println("a is %d", a)
    }
    fmt.Println(data(10))
    
    //输出
    a is 10
    
    2.用作回调函数
    // 遍历切片的每个元素, 通过给定函数进行元素访问
    func visit(list []int, f func(int)) {
        for _, v := range list {
            f(v)
        }
    }
    func main() {
        // 使用匿名函数打印切片内容
        visit([]int{1, 2, 3, 4}, func(v int) {
            fmt.Println(v)
        })
    }
    
    3. 开启新的goroutine
    func main() {
      ch := make(chan int)//用于等待goroutine执行
      fmt.Println("program is start")
      go func(){
        fmt.Println("start new goroutine")
        ch<-1
      }
      <-ch
    }
    
    4. golang函数支持可变参数

    下面的函数入参,nums,是可变参数,可以传多个,也可以不传

    func test(nums ...int){
      for _,value := range nums{
        fmt.Println("%d", value)//打印参数
      }
    }
    func main() {
      test(1, 2, 3, 4, 5)
    }
    //打印结果
    1
    2
    3
    4
    5
    

    相关文章

      网友评论

          本文标题:Golang筑基 ——函数

          本文链接:https://www.haomeiwen.com/subject/mhpnmhtx.html