提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
目录
前言
一、条件语句 if-else
二、分支选择 switch
三、循环语句 for
四、延迟执行 defer
前言
本篇记录了Go语言中的条件、分支和循环结构以及一个很强大的关键字defer
一、条件语句 if-else
1.if-else是最基本的条件判断结构,和c语言不同在于Go中条件表达式不需要括号(),但是执行体必须有大括号{}
注意:else要和if的结束括号在一行
当多个条件需要判断时也可以使用else if
2.Go语言有一个很实用的特性:在if判断之前可以先执行一个初始化语句,这个语句中的变量作用域仅限于该if-else代码块,这样做不会污染外部的作用域同时变量生命周期被限制避免后续代码复用减少bug更安全。
此时输出结果num大于5,num = 8
但是如果在if外部尝试输出num会报错
二、分支选择 switch
多个可能的分支选择用switch,和c不同在于meigecase分支执行完后会自动break,不会穿透到下一个break。
如果需要穿透可以使用fallthrough关键字,强制执行下一个case代码块
小技巧:可以用无表达的switch(switch后面没变量)代替if-else if
三、循环语句 for
Go只有一种循环结构for循环,但是可以用不同形式实现其他循环
标准形式
条件式循环(类似while)
无限循环 一般需要和break一起使用
break:立即终止循环
continue:跳过本次循环进入下一次
四、延迟执行 defer
defer用于注册一个函数调用
执行时机:defer是延时注册函数不会立即调用,在包含defer的函数执行完毕并即将返回前执行。
执行顺序:后进先出的顺序,后写的defer先执行。(类似于栈)
defer 用于在函数即将退出时执行善后处理,常用来关闭文件、数据库与网络连接,完成互斥锁解锁,同时可修改命名返回值。