题目来源于牛客网

一、选择题

Go语言自带垃圾回收机制。

如果是值传递的话子函数对map修改不会影响父函数中的map,如果是地址传递则会影响。

go语言编译器会自动在以标识符、数字字面量、字母字面量、字符串字面量、特定的关键字(break、continue、fallthrough和return)、增减操作符(++和--)、或者一个右括号、右方括号和右大括号(即)、]、})结束的非空行的末尾自动加上分号。
B选项,6是数字字面量,所以在6的后面会自动加上一个分号,导致编译出错。
D选项,gofmt会自动把6后面的“,”去掉,关掉gofmt后测试,也能通过编译,正常运行。
 

可以声明一个未指定大小的数组来定义切片,var identifier [ ]type 切片不需要说明长度;

或使用make函数来创建切片 var slice1 []type = make([ ]type ,Len) ;

也可以指定容量 make([ ]T ,length, capacity)。

只要两个接口拥有相同的方法列表(次序不同不要紧),那么它们就是等价的,可以相互赋值。-AB正确。

Go语言接口是否可以赋值,是在编译期就确定的。D错误。

接口的查询是在运行期确定。C正确。

//interface{}本身是type,怎么赋值呢?只可能出现:
var v1 interface1
var v2 interface2 v1 = v2

bool类型与int类型无法强制转换。D错误。

<-  ch 可以单独调用获取通道的(下一个)值,当前值会被丢弃,但是可以用来验证。

D选项应改为 ch <– value

mock对象的注入:

mock对象的行为都注入到控制器以后,我们接着要将mock对象注入给interface,使得mock对象在测试中生效。

在使用GoStub框架之前,很多人都使用土方法,比如Set。这种方法有一个缺陷:当测试用例执行完成后,并没有回滚interface到真实对象,有可能会影响其它测试用例的执行。所以,笔者强烈建议大家使用GoStub框架完成mock对象的注入。
  1. 全局变量可通过GoStub框架打桩
  2. 过程可通过GoStub框架打桩
  3. 函数可通过GoStub框架打桩
  4. interface可通过GoMock框架打桩

二、参考资料

GoMock框架使用指南

Golang错误和异常处理的正确姿势

Go Channel 详解_鸟窝

深入理解 Go Channel

GoMock

gomock_GoDoc

三、总结

本次主要针对map,异常处理,切片,接口,布尔变量的赋值、channel的语法进行了练习,并了解了GoMock框架。

牛客网_Go语言相关练习_选择题(3)的更多相关文章

  1. 牛客网_Go语言相关练习_选择题(1)

    声明:题目源自牛客网. 一.单项选择题 解析:作为形参时,可以要求单向,只读或只写. 解析:Go语言的内存回收机制规定,只要有一个指针指向引用一个变量,那么这个变量就不会被释放(内存逃逸),因此在Go ...

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

    注:题目来源均出自牛客网. 一.选择题 Map(集合)属于Go的内置类型,不需要引入其它库即可使用. Go-Map_菜鸟教程 在函数声明中,返回的参数要么都有变量名,要么都没有. C选项函数声明语法有 ...

  3. 牛客网_Go语言相关练习_判断&选择题(6)

    本文共34道题目 一.判断题 此题考查编码规范. 反射最常见的使用场景是做对象的序列化(serialization,有时候也叫Marshal & Unmarshal). 例如:Go语言标准库的 ...

  4. 牛客网_Go语言相关练习_判断&选择题(4)

    题目来源于牛客网 一.判断题 成员变量或者函数的首字母表示是否对外部可见. switch后面的声明语句和表达式语句都是可以选择的.例如: //可以什么都不加 switch: break; 错误指的是可 ...

  5. 牛客网_Go语言相关练习_判断&选择题(5)

    一.判断题 defer应该在if后面,如果文件为空,close会崩溃. package main import ( "os" "fmt" ) func main ...

  6. 关于牛客网C语言结构体位域(bit-fields)的一道题

    题目链接地址: https://www.nowcoder.com/questionTerminal/f4e20747a2dd4649bac0c028daa234f4 来源:牛客网 低地址字节 Byte ...

  7. 牛客网 --java问答题

    http://www.nowcoder.com/ 主要是自己什么都不怎么会.在这里可以学习很多的! 第一天看题自己回答,第二天看牛客网的答案! 1 什么是Java虚拟机?为什么Java被称作是“平台无 ...

  8. 【转自牛客网】C++类职位校招

    作者:./a.out链接:https://www.nowcoder.com/discuss/14022来源:牛客网 话说在牛客网上混迹了半年,也没啥拿的出手的贡献.现在基本上自己的校招生涯要告一段落, ...

  9. 牛客网 - vivo2020届春季

    牛客网 - vivo2020届春季 1.[编程题]手机屏幕解锁模式 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M 现有一个 3x3 规格的 Android ...

随机推荐

  1. 4513: [Sdoi2016]储能表 数位DP

    国际惯例的题面: 听说这题的正解是找什么规律,数位DP是暴力......好的,我就写暴力了QAQ.我们令f[i][la][lb][lc]表示二进制从高到低考虑位数为i(最低位为1),是否顶n上界,是否 ...

  2. BZOJ.4361.isn(DP 树状数组 容斥)

    题目链接 长度为\(i\)的不降子序列个数是可以DP求的. 用\(f[i][j]\)表示长度为\(i\),结尾元素为\(a_j\)的不降子序列个数.转移为\(f[i][j]=\sum f[i-1][k ...

  3. Python3基础之字典

    Python数据类型之字典(Dictionary) 字典特征 特征 可变.无序.映射.键值对 形式 {key0:value0, key1:value1, key2:value3, ..., } key ...

  4. CoordTools

    APPLICATION_VERSION="JTNDYXBwbGljYXRpb24lMjBuYW1lJTIwJTNEJTIwJTIyQ29vcmRUb29sc1BybyUyMiUyMHZlcn ...

  5. asp.net c#并行调用service层代码

    public ActionResult Home(AdviserSearchModel model) { //顾问列表需要的当前城市的下级地区 var ip = "117.82.196.19 ...

  6. SIGALRM信号和SIGCHID信号

    在进行堵塞式系统调用时.为避免进程陷入无限期的等待,能够为这些堵塞式系统调用设置定时器.Linux提供了alarm系统调用和SIGALRM信号实现这个功能. 要使用定时器.首先要安装SIGALRM信号 ...

  7. api日常总结

    异步加载JS和CSS <script type="text/javascript"> (function () { var s = document.createEle ...

  8. Activex控件的IObjectSafety接口问题

    我的05年做流氓插件的时候,就注意到了这个问题,只要注册表加入 类似的就可以  HKEY_CLASSES_ROOT\Component    Categories\{7DD95801-9882-11C ...

  9. 根据请求号(request ID)查找正在运行的sql

    --下面的SQL可以根据Request ID找到对应的Session信息: select * from v$session where paddr in (select addr from v$pro ...

  10. Exception的ToString()方法究竟返回的是什么

    最近项目上线后遇到exception没有堆栈信息.所以跟踪一下 源码,其中主要的code如下: // Returns the stack trace as a string. If no stack ...