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

    /    2019-11-27

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

3、golang中的引用类型包括( )

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

解答:ABCD

4、golang中的指针运算包括( )

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

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

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

解答:BCD

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

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

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

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

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

解答:ABD


(12)

分享至