🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
专栏名称 | 专栏介绍 |
《C语言》 | 本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
《网络协议》 | 本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
《docker容器精解篇》 | 全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
《linux系列》 | 本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
《python 系列》 | 本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
《试题库》 | 本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录
⛳️ 推荐
专栏介绍
💡 条件语句使用要点
⚠️ 常见错误与规避
Go 语言的条件语句主要包括if和switch,它们让程序能够根据不同的条件执行不同的代码块。下面这张表格汇总了它们的主要形式和特点,方便你快速了解:
语句类型 | 基本形式 | 主要特点 |
|---|---|---|
|
| 条件表达式无需括号 |
| 支持单分支判断。 | |
| 支持多分支判断。 | |
| 条件判断前可执行简单的语句(如变量初始化),该变量的作用域仅限于该 | |
|
| 用于基于某个值的多路分支,默认每个 |
| 无标签形式,可替代复杂的 | |
| 同样支持在判断前执行简单的语句。 |
💡 条件语句使用要点
if语句的初始化语句在
if条件判断之前,可以执行一个简单的语句(通常是变量初始化),变量作用域被限制在if-else语句块内。这种写法能将变量的声明和判断逻辑紧凑地结合在一起,有助于减少外层作用域的变量污染。if score := calculateScore(); score >= 90 { // score 变量只在此if块中有效 fmt.Println("优秀") } else { fmt.Println("低于优秀") } // fmt.Println(score) // 这里访问 score 会导致编译错误switch语句的独特设计自动跳出:Go 的
switch语句在执行完一个匹配的case后会自动跳出整个switch,无需像 C 或 Java 那样使用break。这避免了因忘记写break导致的意外“穿透”。一分支多值:一个
case可以对应多个值,用逗号分隔,使代码更简洁。switch day { case 1, 3, 5: fmt.Println("奇数工作日") case 2, 4: fmt.Println("偶数工作日") }fallthrough关键字:如果你确实需要执行下一个case的代码块,可以使用fallthrough关键字。但要注意,fallthrough会无条件地执行紧接着的下一个case,而不会判断其条件。
if-else if与switch的选择当你的判断是基于同一个变量或表达式产生的一系列离散值时,
switch语句通常结构更清晰。而当各个分支的判断条件完全不同(例如,判断一个数是否大于 10,同时判断另一个字符串是否为空)时,if-else if结构更合适。
⚠️ 常见错误与规避
if语句的格式错误错误:在条件表达式上加上括号
(),或者将左花括号{换到了下一行。正确做法:严格遵守 Go 的语法规范,
if后直接跟条件或初始化语句,左花括号{保持在同行。// 错误写法 if (score > 90) { // ... } // 正确写法 if score > 90 { // ... }
在
switch中误用fallthrough问题:习惯了 C 语言
switch穿透特性的开发者可能会误以为 Go 也会穿透,或者在不该用的时候使用了fallthrough,导致非预期的逻辑被执行。规避:牢记 Go 的
case是自动跳出的。只有在明确需要下一个case的代码块也被执行时,才使用fallthrough,并仔细检查逻辑。
希望这些解释和例子能帮助你更好地理解 Go 语言的条件语句。如果你在具体使用中遇到其他疑惑,比如在特定场景下如何选择,我很乐意继续讨论。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙