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

一、选择题

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和布尔型的编码规范。

牛客网_Go语言相关练习_选择题(2)相关推荐

  1. 牛客网C语言题目练习

    牛客网C语言专题练习 BC1 实践出真知 BC2 我是大V BC3 有容乃大 BC6 小飞机 BC7 缩短二进制 BC8 十六进制转十进制 BC9 十六进制转十进制 BC11 学生基本信息输入输出 B ...

  2. 牛客网数据开发题库_练习SQL利器,牛客网SQL实战题库

    牛客网SQL实战网址:https://www.nowcoder.com/ta/sql 持续更新--记录自己在牛客网SQL的做题过程 更新进度:61题,2019-4-3,更完了 1.查找最晚入职员工的所 ...

  3. 牛客网C语言考试输入输出问题

    如果是用C语言考试,且HW的需要自己写输入输出的,请注意. 以下绝对不能用 void main() { return ; } 图省事不写返回值,但是会导致网站一直报错,输出无法正常输出,fflush( ...

  4. 牛客网c语言刷题130,开篇入门刷题,战胜对编程的恐惧,适合初学者食用。

    大一,大二初学者训练题 1. BC1-实践出真知 2. BC2-我是大V 3. BC3-有容乃大 4. BC7-缩短二进制 5. BC19-反向输出一个四位数 6. BC28- 大小写转换 本文所有题 ...

  5. 牛客网数据开发题库_牛客网SQL题库NO.32~40

    不要问为什么没有31题,大概被牛客吞掉了吧,哈哈哈哈 SQL 32[简单] 将employees表的所有员工的last_name和first_name拼接起来作为Name,中间以一个空格区分 CREA ...

  6. 牛客网数据开发题库_牛客网刷题笔记--数据库

    C.SC(S#,C#,G)答案:A. 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖. 关系模式S 中,(S#,Sd)→Dc,Sd →Dc,Dc不完全依赖于Sd且Sd为非主属性.故本题答案为 ...

  7. 牛客网数据开发题库_牛客网试题纠错

    1.JVM 大多数 JVM 将内存区域划分为 Method Area(Non-Heap)(方法区) ,Heap(堆) , Program Counter Register(程序计数器) ,   VM ...

  8. 牛客网数据开发题库_数据库刷题—牛客网(21-30)

    21.查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序 CREATE TABLE `employees` ( `emp_no` ...

  9. 牛客网C语言编程初学者入门训练135题

    文章目录 1.实践出真知 2.我是大V 3.有容乃大 4.小飞机 5.反向输出四位数 6.大小写转换 7.缩短二进制 8.十六进制转十进制 9.printf的返回值 10.成绩输入输出 11.学生基本 ...

最新文章

  1. Python--day7--面向对象编程进阶
  2. webpack基础+webpack配置文件常用配置项介绍+webpack-dev-server
  3. jsp中c:forEach的应用
  4. 6行代码解决golang TCP粘包
  5. cordova-plugin-app-version插件使用
  6. 【NOI online 2】游戏【二项式反演】【树上背包】
  7. 【java笔记】java基本语言风格(注释,数据,运算符)
  8. 如何查看Mac电池损耗?
  9. 基于WFST的语音识别解码器
  10. swf转换为GIF格式
  11. java中HashMap与Hash表详解
  12. python工具箱系列(三)
  13. 本文介绍在Wireshark网络协议分析仪中如果解密SSL和TLS流量
  14. 什么是URL?URL是什么意思?
  15. Three-level Laser
  16. 计算机组成原理 课程设计报告
  17. Week8 CSP模拟 T2 HRZ学英语
  18. javascript英语单词音节拆分_英语单词音节的划分法
  19. Unity 3D模型展示之控制标注
  20. Wifi源码学习(Android5.1)之wifi开关

热门文章

  1. Java Formatter out()方法与示例
  2. 调用向量的第i维分量| 使用Python的线性代数
  3. linux yum命令作用,YUM命令使用示例
  4. mybatis collection_MyBatis之关联查询
  5. linux重启后root密码错误,Linux技巧| 解决Debian Root密码忘记的问题
  6. 【kali】kali设置burpsuite抓包dvwa
  7. SQL server 2008下载+安装详细
  8. 【数据结构与算法】内部排序之三:堆排序(含完整源码)
  9. Linux系统编程(四)信号
  10. 信号量sem_init,sem_wait,sem_post