数据库

首页 » 常识 » 问答 » 详解defer实现机制附上三道面试题,
TUhjnbcbe - 2021/2/18 17:59:00
前言

!!嗨,大家好,我是asong,鸽了好久,其实元旦就想写一下这篇文章,但是因为喝酒喝断片了,养了三天才缓过来,就推迟到这个周末了,不过多追溯了,有点丢人。今天与大家来聊一聊go中的关键字defer,目前很多编程语言中都有defer关键字,而go语言的defer用于资源的释放,会在函数返回之前进行调用,它会经常被用于关闭文件描述符、关闭数据库连接以及解锁资源。下面我们就深入Go语言源码介绍defer关键字的实现原理。文末尾给你们留了三道题,检测一下学习成果吧~

基本使用

我们首先来看一看defer关键字是怎么使用的,一个经典的场景就是我们在使用事务时,发生错误需要回滚,这时我们就可以用使用defer来保证程序退出时保证事务回滚,示例代码如下:

//代码摘自之前写的Leaf-segment数据库获取ID方案:

1
查看完整版本: 详解defer实现机制附上三道面试题,