博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Go 面试每天一篇(第 65 天)
阅读量:2288 次
发布时间:2019-05-09

本文共 1378 字,大约阅读时间需要 4 分钟。

点击上方蓝色“Golang来啦”关注我哟

加个“星标”,天天 15 分钟,一起学 Go

1.下面列举的是 recover() 的几种调用方式,哪些是正确的?

  • A.

1func main() {2    recover()3    panic(1)4}
  • B.

1func main() {2    defer recover()3    panic(1)4}
  • C.

1func main() {2    defer func() {3        recover()4    }()5    panic(1)6}
  • D.

1func main() {2    defer func() {3        defer func() {4            recover()5        }()6    }()7    panic(1)8}

参考答案及解析:C。recover() 必须在 defer() 函数中直接调用才有效。上面其他几种情况调用都是无效的:直接调用 recover()、在 defer() 中直接调用 recover() 和 defer() 调用时多层嵌套。

2.下面代码输出什么,请说明?

1func main() { 2    defer func() { 3        fmt.Print(recover()) 4    }() 5    defer func() { 6        defer fmt.Print(recover()) 7        panic(1) 8    }() 9    defer recover() 10    panic(2)11}

参考答案及解析:21。recover() 必须在 defer() 函数中调用才有效,所以第 9 行代码捕获是无效的。在调用 defer() 时,便会计算函数的参数并压入栈中,所以执行第 6 行代码时,此时便会捕获 panic(2);此后的 panic(1),会被上一层的 recover() 捕获。所以输出 21。

引自《Go语言101》

解析若有不妥之处,欢迎在留言区交流、指正!

看下今天的题目:

  • A. if flag == 1

  • B. if flag

  • C. if flag == false

  • D. if !flag

2.下面的代码输出什么,请说明?

1func main() { 2    defer func() { 3        fmt.Print(recover()) 4    }() 5    defer func() { 6        defer func() { 7            fmt.Print(recover()) 8        }() 9        panic(1)10    }()11    defer recover()12    panic(2)13}

这道题与昨天的第二题有点类似,不过答案都在昨天的两道题目里了。

答案以及解析会在下一篇文章中给出,鼓励大家在留言区留下答案,抱团学习,日拱一卒,每天进步一点!

ps:看完文章如果有收获,顺手花 1s 时间帮点下文末右下方的「在看」,感激!

所有学习上的成功,都只依靠两件事 -- 策略和坚持,而坚持本身就是最重要的策略!

推荐阅读:

转载地址:http://uzfnb.baihongyu.com/

你可能感兴趣的文章
想要彻底搞懂微服务架构?必先学:SpringBoot+SpringCloud+docker
查看>>
6天面试10家,已经拿到offer,Java程序员的面试总结分享
查看>>
渣本的逆袭之路!备战3个月,三面蚂蚁金服成功斩获Offer
查看>>
10月末美团、滴滴、蘑菇街9次面试总结(Java岗)
查看>>
热气腾腾的腾讯后台开发面经(总共五面)
查看>>
深入理解设计模式(设计原则+种设计模式+设计模式PK+设计模式混编)
查看>>
谷歌大佬回国发展,吊打各大厂面试官!吐血总结大厂面试高频点及笔记解析
查看>>
面试复盘:面完字节、美团、阿里等大厂,今年面试到底问什么?
查看>>
从0到1,决战Spring Boot《Spring Boot 2实战之旅》
查看>>
5面终于拿到字节跳动offer!忍不住和大家分享一波
查看>>
拿到阿里、字节offer后。我总结了一线大厂Java面试重难点:Java基础+并发+JVM+算法+框架+分布式+架构设计
查看>>
金九银十已过 成功入职美团,面试回顾及个人总结:算法+框架+Redis+分布式+JVM
查看>>
香!阿里P8手写3份满级“并发编程”笔记,原理→精通→实战
查看>>
五面美团后,我总结出美团面试四大难题:JVM+微服务+MySQL+Redis
查看>>
滴滴Java后台3面题目:网络+内存溢出+各种锁+高性能+消息队列
查看>>
大厂面试果然名不虚传,蚂蚁三面凉经,真的是“太难了”
查看>>
分享一次止于三面的阿里面试之旅,是我不配呀
查看>>
美团工作7年,精华全在这份学习笔记里了,已成功帮助多位朋友拿到5个大厂Offer
查看>>
淘宝架构师又出神作,Java异步编程实战笔记总结,彻底被征服
查看>>
深入OAuth2核心源码,阿里大佬的Spring Security手册惊呆我了
查看>>