📅  最后修改于: 2021-01-02 09:18:50             🧑  作者: Mango
下面列出了最常见的Go编程面试问题和答案。
GO是Google开发的一种开源编程语言。它也被称为Golang。该语言主要用于系统编程。
因为Go是一种开源编程语言,所以构建简单,可靠和高效的软件非常容易。
Go编程语言是由Robert Griesemer,Rob Pike和Ken Thompson设计的。它是2009年由Google Inc.开发的。
Go程序由程序包组成。该程序开始在包main中运行。该程序正在使用导入路径为“ fmt”和“ math / rand”的软件包。
Go编程语言不提供对通用编程的支持。
是! Go是区分大小写的编程语言。
字符串字面量指定了通过将一系列字符连接而成的字符串常量。
字符串字面量有两种类型:
工作区包含Go代码。工作空间是目录层次结构,其根目录包含三个目录。
“ false”是类型“ bool”的默认值。
GOPATH环境变量指定工作空间的位置。开发Go代码时必须设置此环境变量。
Go编程语言的优点/优点:
Go中的内置支持列表:
甲够程是通常与其它功能同时运行的函数。如果要停止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
要在Go中编写多个字符串,您应该使用原始字符串字面量,其中该字符串由反引号分隔。
例如:
'line 1
line 2
line 3 '
break语句用于终止for循环或switch语句,并将执行转移到for循环或switch之后立即执行。
Continue语句有助于循环跳过主体的其余部分,并在重新进行迭代之前立即重新测试其条件。
goto语句用于将控制权转移到带标签的语句。
Go编程语言中for循环的语法为:
for [condition | ( init; condition; increment ) | Range]
{
statement(s);
}
在Go中创建函数的语法:
func function_name( [parameter list] ) [return_types]
{
body of the function
}
静态类型变量声明用于向编译器提供保证,即在给定的类型和名称中存在一个变量,因此无需编译器知道有关该变量的完整详细信息以进行进一步处理。变量声明仅在编译时具有其含义,编译器在链接程序时需要实际的变量声明。
动态类型变量声明需要编译器根据传递给它的值来解释变量的类型。编译器不需要变量就具有静态类型的必要条件。
您必须使用以下代码来print变量的类型:
var a, b, c = 3, 4, "foo"
fmt.Printf("a is of type %T\n", a)
指针用于保存变量的地址。
例如:
var x = 5
var p *int
p = &x
fmt.Printf("x = %d", *p)
x可以通过* p访问。
在Go中,使用*(星号)字符表示指针,后跟所存储值的类型。
是。简短的变量声明:=只能在函数内部使用。
您应该使用以下命令来格式化字符串而不进行打印:
返回fmt.Sprintf(“在%v,%s”,e.When,e.What)
使用扩展Backus-Naur格式(EBNF)指定GO编程语言语法:
Go编程语言不提供对类型继承的支持。
Go编程语言不提供对运算符重载的支持。
Go编程语言不支持方法重载。
Go编程语言不提供对指针算术的支持。
package main
import "fmt"
const (
i = 7
j
k
)
func main() {
fmt.Println(i, j, k)
}
答:
777
在GO中,接口是一种识别对象行为的方法。通过使用“类型”字,名称和关键字接口创建接口。接口被指定为两件事。
类型断言接受接口值,并从中检索指定显式类型的值。
类型转换用于转换GO中不同的类型。
在Go编程语言中,有几种不同类型的函数称为方法。在方法声明语法中,“接收器”用于表示函数的容器。该接收器可用于使用“。”调用函数。运算符。
局部变量的默认值是其对应的0值。
局部变量的默认值是其对应的0值。
在Go编程语言中,指针被初始化为nil。
在Go编程语言中,有一种特殊类型的开关专用于在运行时检查变量类型。该开关称为类型开关。
不建议使用全局变量,因为它们可能会同时被多个go例程(线程)访问,这很容易导致意外行为,从而导致任意结果。
模块化编程是一种将程序划分为子程序(模块/函数)的方法,以实现最高效率。
更通用的函数定义可帮助您重用这些函数,例如内置库函数。