1.什么是Go语言?
写代码更加高效;优化了多处理器系统的应用程序,使其可以媲美C或者C++代码程序的速度。另外,他更加安全的支持并行进程;
Go语言不仅提供了高性能语言,同时让开发更加迅速;
Go语言是一门编译型的系统编程语言,具有静态编译语言的高性能和动态语言的高效开发双重特点。
2.Go语言特性
- 自动垃圾回收
在Go语言中,系统会自动判断何时需要释放之前分配的内存空间,并在CPU相对空闲时对不使用的内存进行收集。
- 丰富的内置类型
在Go语言中,内置类型包含:整型,浮点型,数组,字符串,字典map,切片slice。因为语言的内置特性,开发者不用添加依赖的包,让代码更简洁。
- 函数多返回值
Go语言是静态开发语言中率先提供多返回值功能的语言。如果开发者只关心函数中的某几个返回值,可以直接使用下划线作为占位符忽略其他不关心的返回值。
- 异常处理
异常处理涉及3个关键字:error、panic和recover。其中error报告程序中的普通错误,panic报告程序中的致命性错误,而recover可以让程序从panic状态中恢复。
- 匿名函数与闭包
匿名函数就是没有定义函数名的一种函数。而在Go语言中,闭包就是匿名函数,它可以通过匿名函数“捕获”和它在同一作用域的其它常量和变量。
- 结构体
结构体是一系列具有相同或不同类型的数据构成的数据集合。例如,可以利用结构体定义一个学生的学号/姓名/性别/年龄等属性。
- 接口
接口是具体描述一系列方法的集合。例如,可以利用接口将一个人的说、唱这些行为集中到一起。
- 并发编程
并发编程,就是在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。如图所示。
Golang从语言级别上对并发提供了支持,goroutine是Go并发设计的核心,而goroutine就是Go语言实现的协程。在Go程序里,只需要在函数调⽤语句前添加关键字“go”,就可创建并发执行单元。
- 反射功能
反射是通过reflect包实现的,reflect包定义了两种反射类型:Type和Value。通过反射机制,可以获取接口变量存储的类型以及相应的值。