Q1.什么是go?
Go是一种以系统编程为目的的通用语言。它最初由Robert Griesemer、Rob Pike和Ken Thompson于2007年在Google开发。它是强类型和静态类型的,提供内置的垃圾收集支持,并支持并发编程。程序使用包来构建,以便有效地管理依赖关系。Go编程的实现使用传统的编译和链接模型来生成可执行的二进制文件。
Q2.与其他语言相比,使用Go的好处是什么?
Go的语法简单,易于学习和使用。它具有高效的内存管理和垃圾收集,以及卓越的并发编程支持。Go在构建高可用性和可扩展性的网络应用程序方面表现出色,并且可以在多个平台上运行。此外,Go社区非常活跃,有许多开源库和工具可供使用。
- Go代码是实用性的设计。每一个功能和语法的决定都是为了让程序员的生活更轻松而设计的。
- Golang针对并发性进行了优化,并且在规模上运行良好。
- 由于有单一的标准代码格式,Golang通常被认为比其他语言更具可读性。(gofmt)
- 自动垃圾收集明显比Java或Python更有效,因为它与程序一起并发执行。
Q3.如何在运行时检查一个变量的类型?
类型判断是在运行时检查变量类型的最好方法。类型判断按类型而不是按值对变量进行评估。每个Switch至少包含一个case(作为条件语句)和一个默认case(如果没有一个case为真,则执行)。
例如,你可以创建一个Type Switch,检查接口值i是否包含int或string类型:
package main import "fmt" func do(i interface{}) { switch i.(type) { case int: fmt.Println("value is int type") case string: fmt.Println("value is string type") case bool: fmt.Println("value is bool type") default: fmt.Println("can not found value type") } } func main() { do(1) do("joker") do(true) }
Q4.解释一下Go中的数组和结构?
数组用于在一个变量中存储多个相同类型的值,而不是为每个值单独声明变量。在Go中,有两种方法来声明数组。1.使用var关键字 2.使用:=符号。例子:
func func2() { // 数组声明 var array [5]int // 用具体值初始化每个元素 array := [5]int{10, 20, 30, 40, 50} }
结构体用于将不同数据类型的成员集合到一个单一变量中。阵列用于将同一数据类型的多个值存储到一个变量中,而结构用于将不同数据类型的多个值存储到一个变量中。结构对于将数据分组以创建记录非常有用。要在 Go 中声明一个结构,请使用 type 和 struct 关键字。例子:
type person struct { name string age int job string }
Q5.解释一下用Golang进行测试的步骤
Golang支持用自定义测试套件对包进行自动测试。要创建一个新的套件,创建一个以_test.go结尾的文件,并包括一个TestXxx函数,其中Xxx被替换为你要测试的功能名称。例如,一个测试登录功能的函数将被称为TestLogin。然后你把测试套件文件放在与你想测试的文件相同的包里。测试文件在常规执行时将被跳过,但在你输入go test命令时将运行。
文件结构:
func TestReflect(t *testing.T) { fmt.Println("testing") }