GoLang教程——控制结构

Go 语言的控制结构非常精简。它没有 while 或 do-while,只有一个强大的 for 循环。同时,switch 更加智能,if 支持初始化语句。本章还将介绍 Go 独有的资源管理神器 —— defer。 示例代码 1package main 2 3import "fmt" 4 5func main() { 6 // 1. if 语句 7 x := 10 8 // 条件判断不需要小括号 () 9 if x > 5 { 10 fmt.Println("x is large") 11 } 12 13 // if 支持初始化语句:先执行初始化,再判断 14 if y := x * 2; y > 15 { 15 fmt.Println("y is", y) // y 的作用域仅限于 if 块 16 } 17 18 // 2. switch 语句 19 day := "Mon" 20 switch day { 21 case "Mon": 22 fmt.Println("Start of week") 23 // Go 默认不需要 break,自动终止 24 case "Fri": 25 fmt.Println("Weekend is coming") 26 default: 27 fmt.Println("Other day") 28 } 29 30 // 3. for 循环:Go 唯一的循环结构 31 // 形式一:类似于 C/Java 的 for 32 for i := 0; i < 3; i++ { 33 fmt.Print(i, " ") 34 } 35 fmt.Println() 36 37 // 形式二:类似于 while 38 count := 3 39 for count > 0 { 40 fmt.Print(count, " ") 41 count-- 42 } 43 fmt.Println() 44 45 // 4. defer 延迟执行 46 // 常用于资源释放,函数返回前才会执行 47 defer fmt.Println("Exiting main function...") 48 fmt.Println("Doing some work...") 49} 关键点解释 If 条件 条件表达式 不需要 小括号 ()。 大括号 {} 是 必须 的,且左大括号不能换行。 支持 if statement; condition 写法,常用于处理错误:if err := doSomething(); err != nil { ... }。 Switch 分支 默认不需要 break,匹配到一个 case 后自动停止。 如果想继续执行下一个 case,需要显式使用 fallthrough(极少用)。 switch 后可以没有表达式,直接在 case 中写条件判断,替代复杂的 if-else 链。 For 循环 Go 只有 for。 ...

2024-08-01 · 2 min · 286 words · Hank