为了账号安全,请及时绑定邮箱和手机立即绑定

go语言简单入门--关键字与defer

标签:
Go

关键字

  • 程序申明: import package

  • 程序实体声明和定义:chan、const、func、interface、map、struct、type和var

  • 程序流程控制:go、select、break、case、continue、default、的份儿、else、fallthrough、for、goto、if、range、return和switch

  • 并发关键字:go、chan和select

defer函数执行规则:

1、当外围函数中的语句正常执行完毕时,只有其中所有的延迟函数都执行完毕,外围函数才会正在结束执行。

2、当执行外围函数中的return语句是,只有其中所有的延迟函数执行完毕后,外围函数才会真正的返回。

3、当外围函数中的代码引发运行时恐慌时,只有所有的defer函数执行完毕后,运行时恐慌才会真正的被扩散至调用函数

defer的优势:

1、 对延迟函数的地调用总会在外围函数执行结束前执行。

2、defer语句在外围函数函数体中的位置不限,并且数量不限。

使用defer的注意事项:

1、如果在延迟函数中使用外部变量,就应该通过参数传入。

2、同一个外围函数内多个延迟函数调用的执行顺序,会与其所属的defer语句的执行顺序完全相反。

3、延迟函数调用若有参数传入,那么参数的值会在当前defer语句执行时求出。


小技巧:如果保证不出现死锁的情况,在调用lock之后马上使用defer xx.Unlock()


go语言控制特点:

1、没有do while循环,只有一个更广义的for循环。

2、switch语句灵活多变,还可以用于类型判断。v.(type)

3、if语句和switch语句都可以包含一条初始化子语句(最多一条)。

4、break语句和continue语句可以后跟一条标签(label)语句,以标识需要终止或继续的代码块。

5、defer语句可以使我们更方便的执行异步捕获和资源回收任务。

6、select语句也用于多分支选择,但只与通道配合使用。

7、go语句用于异步启动goroutine并执行指定函数。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
9109
获赞与收藏
2572

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消