最常见的Go编程面试问题和答案

时间:2019-10-31 作者:golang

最常见的Go编程面试问题和答案

go语言面试问题
下面列出了最常见的Go编程面试问题和答案。

1)什么是Go编程语言?
GO是Google开发的一种开源编程语言。它也被称为Golang。该语言主要用于系统编程。

2)为什么要使用Go编程语言?
因为Go是一种开源编程语言,所以构建简单,可靠和高效的软件非常容易。

3)谁被称为Go编程语言之父?
Go编程语言是由Robert Griesemer,Rob Pike和Ken Thompson设计的。它于2009年由Google Inc.开发。

4)Go程序中的软件包是什么?
Go程序由程序包组成。该程序开始在包main中运行。该程序正在使用导入路径为“ fmt”和“ math / rand”的软件包。

5)Go是否支持通用编程?
Go编程语言不提供对通用编程的支持。

6)是区分大小写的语言吗?

是! Go是区分大小写的编程语言。

7)Go编程中的字符串文字是什么?

字符串字面量指定了通过连接一系列字符而获得的字符串常量。

字符串文字有两种类型:

原始字符串文字:原始字符串文字的值是反引号之间的字符序列。它的值指定为由引号之间不间断字符组成的字符串文字。
解释的字符串文字:在双引号“”之间显示。文字的值被指定为双引号之间的文本,其中不能包含换行符。

8)Go中的工作空间是什么?
工作区包含Go代码。工作区是目录层次结构,其根目录包含三个目录。

“ src”目录包含组织成包的GO源文件。
“ pkg”目录包含软件包对象。
“ bin”目录包含可执行命令
9)Go编程中bool类型的默认值是什么?
“ false”是类型“ bool”的默认值。

10)Go编程中什么是GOPATH环境变量?

GOPATH环境变量指定工作空间的位置。开发Go代码时必须设置此环境变量。

11)Go编程语言的优点/好处是什么?

Go编程语言的优点/优点:

Go速度很快,并且编译速度非常快。
它在语言级别支持并发。
它有垃圾收集。
它支持各种安全功能和CSP风格的并发编程功能。
字符串和映射内置于该语言中。
函数是该语言中的一流对象。

12)Go中有哪些内置支持?
Go中的内置支持列表:

容器:容器/列表,容器/堆
Web服务器: net / http
密码学: Crypto / md5,crypto / sha1
压缩: compress / gzip
数据库: database / sql

13)Go编程语言中的goroutine是什么?

goroutine是通常与其他功能同时运行的功能。如果要停止goroutine,则将一个信号通道传递到goroutine,当您希望goroutine停止时,该信号通道会将一个值推入。

Goroutine在检测到信号后便会定期轮询该通道。

Quit : = make (chan bool)
go func ( ) {
for {
select {
case <- quit:
return
default
// do other stuff
}
}
}()
// Do stuff
// Quit goroutine
Quit <- true

 


14)如何在Go编程中编写多个字符串?

要在Go中编写多个字符串,您应该使用原始字符串文字,该字符串由反引号分隔。

例如:

line 1
line 2
line 3 '

 


15)Go编程语言中break语句的用途是什么?

break语句用于终止for循环或switch语句,并将执行转移到for循环或switch之后立即执行。

16)Go编程语言中的continue语句有什么用?

continue语句有助于循环跳过主体的其余部分,并在重新进行迭代之前立即重新测试其条件。

17)Go编程语言中goto语句的用法是什么?

goto语句用于将控制权转移到带标签的语句。

18)解释“ for”循环的语法。

Go编程语言中for循环的语法为:

for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}

 

19)用Go编程语言编写语法以创建函数?
在Go中创建函数的语法:

func function_name( [parameter list] ) [return_types]
{
body of the function
}

 


20)用Go编程语言解释变量的静态类型声明?

静态类型变量声明用于向编译器提供保证,即在给定的类型和名称中只有一个变量,因此编译器无需知道有关该变量的完整详细信息以进行进一步处理。变量声明仅在编译时具有其含义,编译器在程序链接时需要实际的变量声明。

21)用Go编程语言解释变量的动态类型声明?
动态类型变量声明需要编译器根据传递给它的值来解释变量的类型。编译器不需要变量就具有静态类型的必要条件。

22)您将如何在Go中打印变量类型?
您必须使用以下代码来打印变量的类型:

var a, b, c = 3, 4, “foo”
fmt.Printf(“a is of type %T\n”, a)

23)Go中的指针是什么?

指针用于保存变量的地址。
例如:
VAR X = 5

var p * int
p =&x
fmt.Printf(“ x =%d”,* p)

 

x可以通过* p访问。

24)Go中的指针如何表示?
在Go中,使用*(星号)字符表示指针,后跟所存储值的类型。

25)短变量声明:=只能在函数内部使用吗?

是。简短的变量声明:=只能在函数内部使用。

26)如何在不打印的情况下格式化字符串?

您应该使用以下命令来格式化字符串而不进行打印:

返回fmt.Sprintf(“在%v,%s”,e.When,e.What)

27)Go编程语言中的语法是什么样的?
使用扩展Backus-Naur形式(EBNF)指定GO编程语言语法:

Production = production_name "=" [ Expression ]
Expression = Alternative { "l" Alternative }
Alternative = Term { Term }
Term = Production_name l token [ "?"token] l Group l Option l Repetition
Group = " ( "" Expression")"
Option = " [ " Expression "" ]"
Repetition = " {" Expression "}"

 

28)Go编程语言是否支持类型继承?
Go编程语言不提供对类型继承的支持。

29)Go编程语言是否支持运算符重载?

Go编程语言不支持运算符重载。

30)Go支持方法重载吗?

Go编程语言不支持方法重载。

31)Go支持指针算术吗?
Go编程语言不提供对指针算术的支持。

32)以下代码的输出是什么?

package main  
import "fmt"  
 const (   
       i = 7  
       j   
       k   
 )  
func main() {  
 fmt.Println(i, j, k)  
}  

答:

777

 

33)什么是Go接口?
在GO中,接口是一种识别对象行为的方法。通过使用“类型”字,名称和关键字接口创建接口。接口被指定为两件事。

一套方法。
也称为类型。

34)Go中的类型断言是什么?它有什么作用?
类型断言接受接口值,并从中检索指定的显式类型的值。

类型转换用于转换GO中的不同类型。

35)Go编程语言有哪些不同的方法?
在Go编程语言中,有几种不同类型的函数称为方法。在方法声明语法中,“接收器”用于表示函数的容器。该接收器可用于使用“。”调用功能。操作员。

36)Go中局部变量的默认值是什么?
局部变量的默认值是其对应的0值。

37)Go中全局变量的默认值是什么?
局部变量的默认值是其对应的0值。

38)Go中的指针变量的默认值是什么?
在Go编程语言中,指针被初始化为nil。

39)如何在运行时使用Go编程语言检查变量类型?
在Go编程语言中,有一种特殊类型的开关专用于在运行时检查变量类型。该开关称为类型开关。

40)是否建议在实现go例程的程序中使用全局变量?
不建议使用全局变量,因为它们可能会同时被多个go例程(线程)访问,这很容易导致意外行为,从而导致任意结果。

41)您对模块化编程了解多少?
模块化编程是一种将程序划分为子程序(模块/功能)的方法,以实现最大效率。

更通用的函数定义可帮助您重用这些函数,例如内置库函数。

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:2100506673@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。