青少年叛逆
青少年叛逆
IT培训
广告招商

Go面试选择题10道(3)北京老男孩go语言好学吗

Go语言面试题分享:(选择题10道)

1、关于init函数,下面说法正确的是 

A. 一个包中,可以包含多个init函数

B. 程序编译时,先执行导入包的init函数,再执行本包内的init函数

C. main包中,不能有init函数

D. init函数可以被其他函数调用

解答AB

2、golang中没有隐藏的this指针,这句话的含义是 

A. 方法施加的对象显式传递,没有被隐藏起来

B. golang沿袭了传统面向对象编程中的诸多概念,比如继承、虚函数和构造函数

C. golang的面向对象表达更直观,对于面向过程只是换了一种语法形式来表达

D. 方法施加的对象不需要非得是指针,也不用非得叫this

解答ACD

3golang中的引用类型包括 

A. 数组切片 B. map C. channel D. interface

解答ABCD

4golang中的指针运算包括 

A. 可以对指针进行自增或自减运算

B. 可以通过“&”取指针的地址

C. 可以通过“*”取指针指向的数据

D. 可以对指针进行下标运算

解答BC

5、下面赋值正确的是 

A. var x = nil

B. var x interface{} = nil

C. var x string = nil

D. var x error = nil

解答BD

6、关于整型切片的初始化,下面正确的是 

A. s := make([]int)

B. s := make([]int, 0)

C. s := make([]int, 5, 10)

D. s := []int{1, 2, 3, 4, 5}

解答BCD

7、关于GoMock,下面说法正确的是 

A. GoMock可以对interface打桩

B. GoMock可以对类的成员函数打桩

C. GoMock可以对函数打桩

D. GoMock打桩后的依赖注入可以通过GoStub完成

解答AD

8、关于接口,下面说法正确的是 

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

B. 如果接口A的方法列表是接口B的方法列表的子集,那么接口B可以赋值给接口A

C. 接口查询是否成功,要在运行期才能够确定

D. 接口赋值是否可行,要在运行期才能够确定

解答ABC

9golang中大多数数据类型都可以转化为有效的JSON文本,下面几种类型除外 

A. 指针 B. channel C. complex D. 函数

解答BCD

10、关于go vendor,下面说法正确的是 

A. 基本思路是将引用的外部包的源代码放在当前工程的vendor目录下面

B. 编译go代码会优先从vendor目录先寻找依赖包

C. 可以指定引用某个特定版本的外部包

D. 有了vendor目录后,打包当前的工程代码到其他机器的$GOPATH/src下都可以通过编译

解答ABD

 


已邀请:

要回复问题请先登录注册

狗粮批发
嘿,进入会员专区!