简单分析下golang常见的面试题。
什么是golang?
go是一个开源的编程语言,由谷歌开发的。这门语言是设计用来做系统级的编程的。
为什么要用golang?
简单点说就是go是一个开源的编程语言,它很容易用来编写简单, 可靠,有效的软件。
是谁开发了go语言?
Robert Griesemer, Rob Pike, Ken Thompson.
go编程中的packages是什么?
Go语言的最小集合就是package,它的程序入口是main package。
Go语言是否支持generic编程?
不支持。
go语言是大小写敏感的编程语言吗?
是的。
go语言里面字符串的语法是怎样的?
go语言里有两种字符串语法。
一种是原始字符串语法raw string literals。使用back quotes来包含一系列的字符集。支持多行。
另一种是interpreted string literals。用双引号括起来。不支持多行。
Go语言的work space是指什么?
Work space用来包含go语言的代码,有三个主要的文件目录, src, pkg, bin。
go语言中布尔类型的缺省值是什么?
false
Gopath环境变量是什么?
Gopath来指定工作空间的位置。在做go语言编程的时候,这个变量设置是必须的。
go语言编程的好处是什么?
编译和运行都很快。
在语言层级支持并行操作。
有垃圾处理器。
内置字符串和maps。
函数是go语言的最基本编程单位。
go语言里比较常用的功能模块。
Container, container list, container heap.
Web server, net/http
Cryptography, Crypto/md5, crypto/sha1.
Compression, compress/gzip.
Database, database/sql.
goroutine是什么?
一个goroutine是可以跟其他函数并行运行的函数。如果想停止一个goroutine,你可以通过一个signal channel传值进去。
如何写多行的字符串?
raw string literal
go语言里的break是干什么用的?
Break是用来终止当前的for loop或者switch的。
continue的作用是什么?
Continue就是跳过当前的运行单元。不会终止当前的loop.
goto是干什么的?
Goto 是为了跳转。
for loop如何使用?
For 有三种情况,一种是condition,一种是range, 最后一种是init, condition, increment。
在go语言中如何创建一个函数?
使用func functionname ([Parameter list]) [Return types]
解释一下go语言中的静态类型声明。
静态类型声明是告诉编译器不需要太多的关注这个变量的细节。静态变量的声明,只是针对于编译的时候, 在连接程序的时候,编译器还要对这个变量进行实际的声明。
解释一下go语言中的动态类型声明。
动态类型声明是指go语言根据赋值的类型对这个变量的类型进行设定。
如何打印出一个变量的类型?
%T
什么是指针?
指针是用来存储变量地址的类型。
指针是如何表示的?
使用星号加上数据类型。
:= 短声明是不是只能用在一个函数里面?
是。
如何不打印来格式化一个字符串?
fmt.Sprintf
go语言的语义是什么类型?
Go 语言的语意遵循的是extended backus-naur form即延伸的巴克斯.诺尔形式.
go语言是否支持继承?
不支持。
go语言是否支持操作符的重载?
不支持。
go语言是否支持方法重载?
不支持。