Golang筑基 ——函数

技术修仙 · · 461 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

定义

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筑基 ——函数

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

461 次点击  
加入收藏 微博
1 回复  |  直到 2020-06-30 16:06:25
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传