Go语言相关练习_选择题(2)

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

一、选择题

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

Go-Map_菜鸟教程

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

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

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

Go-字符串_极客学院

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

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

进程和线程、协程的区别

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

Go语言的指针 & *

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

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

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

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

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

Go语言中 select 和 switch 的比较

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

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

go vendor 介绍

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

Go编码规范指南

二、参考资料

Go的异常处理 defer, panic, recover

go语言之 panic, recover ——如何在go语言中优雅的处理错误

https://golang.org/pkg/builtin/

从例子中学习 go 语言 —— 基本语法

从例子中学习 go 语言 —— 数据结构、指针

Go语言中的指针运算

Go语言并发模型:使用 select

golang的select典型用法

https://github.com/golang/go/wiki/CodeReviewComments

The Go Programming Language Specification

三、总结

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT笔记

聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全

很多初学者,甚至是工作1-3年的小伙伴们都可能弄不明白?servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是线程安...

38060
来自专栏我是业余自学C/C++的

深拷贝和浅拷贝

16630
来自专栏小狼的世界

短链接算法收集与分析

一般来说,第三步是我们比较头疼的,如何将一个长的URL字符串,映射成一个较短的字符串呢。我总结了三种办法:

24510
来自专栏林德熙的博客

dotnet core 编程规范

本文实际只是翻译 .NET Core foundational libraries 官方文档的编码风格。

10420
来自专栏Python中文社区

有效的python属性管理:描述符的使用

專 欄 ❈Pytlab,Python中文社区专栏作者。主要从事科学计算与高性能计算领域的应用,主要语言为Python,C,C++。熟悉数值算法(最优化方法,蒙...

20290
来自专栏IT笔记

Nginx学习之location匹配规则

介绍 location指令是http模块当中最核心的一项配置,根据预先定义的URL匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器、非法的请求...

34880
来自专栏决胜机器学习

PHP开发过程的那些坑(一) ——对象拷贝

PHP开发过程的那些坑(一)——对象拷贝 (原创内容,转载请注明来源,谢谢) 坑: 做单元测试的过程中,想要运用@dataProvider方式分别传两个不同的对...

37870
来自专栏自动化测试实战

RF自定义系统关键字

41070
来自专栏IT笔记

聊聊Servlet、Struts1、Struts2以及SpringMvc中的线程安全

很多初学者,甚至是工作1-3年的小伙伴们都可能弄不明白?servlet Struts1 Struts2 springmvc 哪些是单例,哪些是多例,哪些是...

588140
来自专栏V站

如何提高PHP编程效率,提升程序编译质量(53条)

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串...

16950

扫码关注云+社区

领取腾讯云代金券