[GoLang避坑实战-07] 扔掉冗长的 if-else:Go 流程控制的"极简之道"

大家好,我是极客老墨。 写 Go 之前,我在 Java 里循环都是 for、while、do-while 三件套。转到 Go 发现只有一个 for,心想"这够用吗?" 结果发现 Go 的 for 能当 while 用,能当无限循环用,还能用 range 遍历。更绝的是 switch 默认不用 break,if 还能带初始化语句。 这篇就聊聊 Go 控制结构的几个巧妙设计。 if:条件判断不用括号 Go 的 if 语句很简洁,条件不需要括号: 1x := 10 2if x > 5 { 3 fmt.Println("x is large") 4} 5 6// if-else 7if x > 10 { 8 fmt.Println("x is large") 9} else { 10 fmt.Println("x is small") 11} ⚠️ 注意:大括号 {} 是必须的,且左大括号不能换行。 初始化语句:限制变量作用域 if 可以带初始化语句,变量作用域仅限于 if-else 块: 1// 常用于错误处理 2if err := doSomething(); err != nil { 3 fmt.Println("Error:", err) 4 return 5} 6 7// 常用于 map 查找 8if value, ok := m["key"]; ok { 9 fmt.Println("Found:", value) 10} else { 11 fmt.Println("Not found") 12} 💡 技巧:这种写法让变量作用域更小,代码更简洁。 ...

2024-08-01 · 5 min · 1027 words · 老墨