任何一门语言的出现都是为了解决其他语言的一些痛点而存在,所以我对 Go 语言进行了初略的了解。
我们可以知道 Go 语言是一门类 C 语言,但是它又拥有垃圾回收(GC、内存安全),可以说是融合 C 语言、Java 等众家之长的编程语言。
Go 语言是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言,也是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
在简单了解后,我大概能理解如下关于 Go 语言的特点和优势。
也通过写笔记的方式,让我能够在像他人表达的过程中进一步掌握 Go 语言。
内存和资源管理在某些语言(C、C++)中是一个难点,因为对于内存的使用和释放都需要开发者手动管理,一个小疏忽就可能引发内存泄漏,导致程序甚至系统崩溃。
而 Go 语言的现代化垃圾回收机制降低了开发难度,把麻烦的内存管理交给专业的编译器去做,而让程序员专注于更意义的事情(算法逻辑或者系统设计)。
Go 语言相对于其他语言,内置的数据类型更为丰富。
例如 map 是直接作为内置类型的存在,还有数组切片(Slice)。
在主流语言中基本都不支持函数的多返回值功能,需要自定义结构体的方式来携带函数中产生的多个数据。
Go 语言的多返回值功能让开发者既不用再只为了返回多个值而专门定义一个数据结构,Go 语言的函数天然支持多值返回。
Go 语言引入了 defer 关键字用于标准的错误处理流程,并提供了内置函数 panic、recover 完成异常的抛出与捕获。
与 Java 等语言中的异常捕获机制相比,Go 语言的开发者无需再仅为了程序安全而添加大量一层套一层的 try-catch 语句。
Go 语言使用 C 语言中的结构甚至直接沿用了 struct 关键字。
Go 语言没有如 Java 这种语言超级复杂的类型系统,Go 语言遵循一个原则:组合优于继承,因为继承的特性都可以通过组合的方式实现。
Go语言引入了 goroutine 概念。
goroutine 是一种比线程更加轻盈、更省资源的协程。
相对于多线程,协程实现的并发编程变得更加轻盈和安全。
很多公司特别是云计算公司开始用 Go 重构他们的基础架构,很多都是直接采用 Go 进行了开发。
像引领虚拟化、容器化的 Docker 就是采用 Go 语言开发的。
访问 Go 语言中文社区 在下载页面下载对应环境的工具包。
VsCode 是免费的,可以直接到官网下载。通过安装 Go 语言编译器插件,就可以使用 VsCode进行 Go 语言的开发。
在 VsCode 插件页面搜索 Go,安装 Go 语言官方插件。
在 VsCode 页面通过快捷键 Ctrl + Shift + P
调出用于执行命令的输入框。
输入 Go: Install/Update Tools
安装相关工具。
在执行命令时可能会遇到报错信息:commands go.tools.install not found。配置代理:
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn
选中确认安装
创建项目目录 demo
。
使用命令创建 module:go mod init main
生成 go.mod 文件。
创建文件 main.go。
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello Go")
}
使用 F5 快捷键执行。