Golang面试题41道
大家好,这一期呢,我们来说一下golang的面试题。
第1题什么是golang?
go是一个开源的编程语言,由谷歌开发的。这门语言是设计用来做系统级的编程的。
第2题为什么要用golang?
简单点说就是go是一个开源的编程语言,它很容易用来编写简单, 可靠,有效的软件。
第3题是谁开发了go语言?
Robert Griesemer, Rob Pike, Ken Thompson.
第4题,go编程中的packages是什么?
Go语言的最小集合就是package,它的程序入口是main package。
第5题, Go语言是否支持generic编程?
不支持。
第6题, go语言是大小写敏感的编程语言吗?
是的。
第7题,go语言里面字符串的语法是怎样的?
go语言里有两种字符串语法。
一种是原始字符串语法raw string literals。使用back quotes来包含一系列的字符集。支持多行。
另一种是interpreted string literals。用双引号括起来。不支持多行。
第8题, Go语言的work space是指什么?
Work space用来包含go语言的代码,有三个主要的文件目录, src, pkg, bin。
第9题,go语言中布尔类型的缺省值是什么?
false
第10题, Gopath环境变量是什么?
Gopath来指定工作空间的位置。在做go语言编程的时候,这个变量设置是必须的。
第11题,go语言编程的好处是什么?
编译和运行都很快。
在语言层级支持并行操作。
有垃圾处理器。
内置字符串和maps。
函数是go语言的最基本编程单位。
第12题,go语言里比较常用的功能模块。
Container, container list, container heap.
Web server, net/http
Cryptography, Crypto/md5, crypto/sha1.
Compression, compress/gzip.
Database, database/sql.
第13题,goroutine是什么?
一个goroutine是可以跟其他函数并行运行的函数。如果想停止一个goroutine,你可以通过一个signal channel传值进去。
第14题,如何写多行的字符串?
raw string literal
第15题, go语言里的break是干什么用的?
Break是用来终止当前的for loop或者switch的。
第16题,continue的作用是什么?
Continue就是跳过当前的运行单元。不会终止当前的loop.
第17题,goto是干什么的?
Goto 是为了跳转。
第18题,for loop如何使用?
For 有三种情况,一种是condition,一种是range, 最后一种是init, condition, increment。
第19题在go语言中如何创建一个函数?
使用func functionname ([Parameter list]) [Return types]
第20题, 解释一下go语言中的静态类型声明。
静态类型声明是告诉编译器不需要太多的关注这个变量的细节。静态变量的声明,只是针对于编译的时候, 在连接程序的时候,编译器还要对这个变量进行实际的声明。
第21题, 解释一下go语言中的动态类型声明。
动态类型声明是指go语言根据赋值的类型对这个变量的类型进行设定。
第22题, 如何打印出一个变量的类型?
%T
第23题, 什么是指针?
指针是用来存储变量地址的类型。
第24题, 指针是如何表示的?
使用星号加上数据类型。
第25题, := 短声明是不是只能用在一个函数里面?
是。
第26题, 如何不打印来格式化一个字符串?
fmt.Sprintf
第27题, go语言的语义是什么类型?
Go 语言的语意遵循的是extended backus-naur form即延伸的巴克斯.诺尔形式.
第28题, go语言是否支持继承?
不支持。
第29题,go语言是否支持操作符的重载?
不支持。
第30题,go语言是否支持方法重载?
不支持。
第31题,go语言是否支持指针运算?
不支持。
第32题,如下代码的输出是什么?
package main
import "fmt"
const (
i=7
j
k
)
func main(){
fmt.Println(i,j,k)
}
答案是777.
第33题,go的接口是什么?
在go语言中,interface也就是接口,被用来指定一个对象。接口具有下面的要素:
一系列的方法。
具体应用中并用来表示某个数据类型。
在go中使用interface来实现多态。
第34题, Go语言里面的类型断言是怎么回事?
类型断言是用来从一个接口里面读取数值给一个具体的类型变量。
类型转换是指转换两个不相同的数据类型。
第35题, Go语言里面的方法是怎么回事?
Go语言里面的方法,实际上就是某个函数, 在这个函数中指定一个receiver,在调用这个函数的时候使用这个receiver用dot操作符。
第36题, go语言中局部变量的缺省值是什么?
局部变量的缺省值是与这个类型相关的0值。
第37题, 全局变量的缺省值是什么?
全局变量的缺省值是与这个类型相关的零值。
第38题, 指针的缺省值是什么?
指针的缺省值为nil。
第39题, 如何在运行时检查一个变量的类型?
switch type.
第40题, 在使用go routine时是否推荐使用全局变量?
不推荐。
第41题, 模块化编程是怎么回事?
模块化编程是指把一个大的程序分解成几个小的程序。这么做的目的是为了减少程序的复杂度,易于维护,并且达到最高的效率。
码字不易,请不吝点赞,随手关注,更多精彩,自动送达。