📜  前41个Go编程(Golang)面试问题

📅  最后修改于: 2021-01-02 09:18:50             🧑  作者: Mango

去面试问题

下面列出了最常见的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在检测到信号后便会定期轮询该通道。

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中print变量类型?

您必须使用以下代码来print变量的类型:

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_name“ =” [表达式]
  • 表达式=替代{“ l”替代}
  • 替代=术语{术语}
  • 术语=生产名称l令牌[“?”令牌] l组l选项l重复
  • 组=“(”“” 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例程的程序中使用Global Variables?

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

41)您对模块化编程了解多少?

模块化编程是一种将程序划分为子程序(模块/函数)的方法,以实现最高效率。

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