Golang 控制结构与函数:编写简单的程序逻辑和函数定义

6次阅读

go语言控制结构简洁:if支持初始化且无括号,for统一实现各类循环switch默认自动break并支持条件表达式,函数类型后置且天然支持多返回值。

Golang 控制结构与函数:编写简单的程序逻辑和函数定义

Go 语言的控制结构和函数定义简洁直观,适合快速构建清晰、可维护的程序逻辑。掌握 if/elseforswitch 和基础函数写法,就能覆盖绝大多数日常编程需求。

条件判断:if 语句支持初始化,无需括号

Go 的 if 语句允许在条件前添加简短初始化语句,且条件表达式不加括号。这有助于限制变量作用域,提升代码安全性。

  • 基本写法:if x > 0 { ... } else if x
  • 带初始化:if err := doSomething(); err != nil { return err } —— err 只在 if/else 块内有效
  • 注意:else 必须与 if 的右大括号在同一行,否则编译报错

循环只有一种:for,但能模拟 while 和 for-each

Go 没有 while 或 do-while,所有循环都用 for 实现,灵活且统一。

  • 传统三段式:for i := 0; i
  • 类似 while:for condition { ... }(如 for len(data) > 0 { ... }
  • 遍历切片mapfor i, v := range slice { ... }for k := range m { ... }

多分支选择:switch 更安全、更简洁

Go 的 switch 默认自动 break,无需显式写 break;支持任意类型比较(包括字符串结构体字段),也支持条件表达式。

立即学习go语言免费学习笔记(深入)”;

  • 值匹配:switch mode { case "dev": ..., case "prod": ... }
  • 条件判断:switch { case x 100: ... }(类似 if-else 链)
  • fallthrough 可手动穿透到下一个 case,但需显式写出,避免误用

函数定义:参数与返回值类型后置,支持多返回值

Go 函数声明强调“类型后置”,语法紧凑;天然支持多返回值,常用于返回结果 + 错误。

  • 基本函数:func add(a, b int) int { return a + b }
  • 多返回值:func divide(a, b float64) (float64, Error) { if b == 0 { return 0, errors.New("div by zero") }; return a/b, nil }
  • 命名返回值(可选):func split(n int) (x, y int) { x = n/2; y = n-x; return } —— 最后的 return 会自动返回当前 x、y 值
text=ZqhQzanResources