在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
题目来源于牛客网 一、选择题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对象的注入。
二、参考资料GoMock框架使用指南
三、总结本次主要针对map,异常处理,切片,接口,布尔变量的赋值、channel的语法进行了练习,并了解了GoMock框架。
|
请发表评论