Go语学习笔记 - 函数 | 从零开始Go语言

简介: Go语学习笔记 - 函数 | 从零开始Go语言

学习笔记,写到哪是哪。


1、函数定义

函数的定义和java一样,使用{}进行包裹,并且要明确入参类型以及返回类型。


样例代码如下:


func min(num1, num2 int) int {
  if num1 <= num2 {
  return num1
  } else {
  return num2
  }
}
func main() {
  fmt.Printf("max = %d\n", min(10, 12))
}

执行结果


max = 10


2、多值返回

和Python一样,可以多值返回。


样例代码如下


func swap(num1, num2 int) (int, string) {
  return num1 + num2, "haha"
}
func main() {
  a, b := swap(10, 12)
  fmt.Printf("swap = %d - %v\n", a, b)
}

执行结果


swap = 22 - haha


3、引用传递

可以将参数的引用地址传递到函数,这样操作会影响到实际参数。


样例代码如下


func swap1(num1, num2 *int) {
  var temp int
  temp = *num1
  *num1 = *num2
  *num2 = temp
}
func main() {
  c, d := 10, 20
  swap1(&c, &d)
  fmt.Printf("swap1 c=%d,d=%d\n", c, d)
}

执行结果


swap1 c=20,d=10


4、函数作为实参使用

和python一样,可以在方法内部定义函数。


样例代码如下


func method(num1 int) int {
  getMax := func(x, y int) int {
  if x > y {
    return x
  } else {
    return y
  }
  }
  a := num1 - 10
  b := getMax(num1, a)
  fmt.Printf("value = %d\n", b)
  return b
}
func main() {
  fmt.Printf("method = %d\n", method(20))
}

执行结果


value = 20                        

method = 20


5、匿名函数

函数返回匿名函数,形成闭包。


样例代码如下


//匿名函数
func anonymous(num int) func() int {
  var a int
  a = num
  return func() int {
  a += 1
  return a
  }
}
func main() {
  flagNum := anonymous(100)
  fmt.Printf("1 -> %d\n", flagNum())
  fmt.Printf("2 -> %d\n", flagNum())
  fmt.Printf("3 -> %d\n", flagNum())
  flagNum1 := anonymous(18)
  fmt.Printf("4 -> %d\n", flagNum1())
  fmt.Printf("5 -> %d\n", flagNum1())
}

执行结果


1 -> 101                          

2 -> 102                          

3 -> 103                          

4 -> 19                            

5 -> 20


小结

整体上都比较好理解。


相关文章
|
2天前
|
人工智能 安全 测试技术
|
4天前
|
云安全 人工智能 安全
阿里云 Agentic SOC 位居 IDC MarketScape安全运营智能体2026领导者类别
以 Agentic AI 重构安全运营闭环,阿里云云安全在产品能力与市场份额
1174 3
|
4天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
359 94
|
5天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
614 11
|
8天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
8天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
370 0