欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go的异常处理 defer, panic, recover

程序员文章站 2022-03-18 16:01:20
注:题目来源均出自牛客网。 一、选择题 Map(集合)属于Go的内置类型,不需要引入其它库即可使用。 Go-Map_菜鸟教程 在函数声明中,返回的参数要么都有变量名,要么都没有。 C选项函数声明语法有错误,error是返回类型,但没有返回名。 go语言中字符串是UTF-8编码并存储的,它语言不定长的 ......

注:题目来源均出自牛客网。

一、选择题

Go的异常处理 defer, panic, recover

Map(集合)属于Go的内置类型,不需要引入其它库即可使用。

 

Go的异常处理 defer, panic, recover

在函数声明中,返回的参数要么都有变量名,要么都没有。

C选项函数声明语法有错误,error是返回类型,但没有返回名。

 

Go的异常处理 defer, panic, recover

go语言中字符串是UTF-8编码并存储的,它语言不定长的字节,所以它不支持下标操作,因为没一个下标操作代表的是固定长度的字节,所以不能对字符串中某个字符单独赋值。

 

Go的异常处理 defer, panic, recover

由panic引发异常以后,程序停止执行,然后调用延迟函数(defer),就像程序正常退出一样。另外recover也是要写在延迟函数中的,如果发生异常延迟函数就不执行了,那就永远无法recover了。

Go的异常处理 defer, panic, recover

Go的异常处理 defer, panic, recover

 

Go的异常处理 defer, panic, recover

本题考查对协程与进程的理解,B选项应该是协程比线程更轻量

 

Go的异常处理 defer, panic, recover

Go语言的语法上是不支持指针运算的,所有指针都在可控的一个范围内使用,没有C语言的*void然后随意转换指针类型这样的东西

 

Go的异常处理 defer, panic, recover

字符串只有两种直接表达的形式,一种是双引号,一种是反引号

A选项中的反引号是中文符号,编译肯定会报错。

 

Go的异常处理 defer, panic, recover

golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作;

在执行select语句的时候,运行时系统会自上而下地判断每个case中的发送或接收操作是否可以被立即执行(立即执行:意思是当前Goroutine不会因此操作而被阻塞);

select的用法与switch非常类似,由select开始一个新的选择块,每个选择条件由case语句来描述。与switch语句可以选择任何可使用相等比较的条件相比,select有比较多的限制,其中最大的一条限制就是每个case语句里必须是一个IO操作,确切的说,应该是一个面向channel的IO操作。

 

Go的异常处理 defer, panic, recover

基本思路:将引用的外部包的源代码放在当前工程的vendor目录下面,go 1.6以后编译go代码会优先从vendor目录先寻找依赖包。

它解决了避免项目代码外部依赖过多,迁移后需要多次go get 外包依赖包;而且通过go get 重新拉去的外部依赖包的版本可能和工程开发时使用的不一致导致编译错误的问题。

 

Go的异常处理 defer, panic, recover

布尔型变量应该赋值是true和false,正确答案应该是BCD。

 

二、参考资料

 

三、总结

本次Go语言练习主要涉及到异常处理、集合、函数声明、对协程的理解、字符串连接、select机制、vendor和布尔型的编码规范。