这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
go语言简介
go语言有许多优势,首先go具有高性能,内置高并发支持;具有丰富的标准库,保证稳定性和兼容性以及性能优化;语法简单易懂,上手快速,开发简单;具有完善的工具链,包括编译、代码格式化,错误检查,包管理,代码补充提示以及单元测试框架等;Go实现静态编译的速度较快,跨平台,有垃圾回收机制等,go原生支持Unicode。因此在Web服务器搭载,高性能分布式领域方面作用很大。
go的安装与环境配置
访问 go.dev/ ,点击 Download ,下载对应平台安装包,配置 go mod proxy,打开终端执行:
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
下载VS Code,安装Go 插件运行。
go的编写与运行
以hello world程序为例:
package main
import "fmt"
func main() {
fmt.Println("Hello, 世界")
}
go代码由包组织,每个.go文件都package声明语句开始,然后是import包,最后是程序。main包定义了独立可执行程序,而main函数是整个程序的执行入口。
执行代码的指令为:
go run helloworld.go 执行代码
go build helloworld.go 生成二进制文件
与之前本人学习的C++相比,其在语法上有部分区别:
- go语言有原生并发特性,通过goroutine 和 channel等实现。
- go只有for循环这一种循环语句。
j = i++非法,而且++和--都只能放在变量名后面,因此--i也非法- 变量可以类型自动推导,如
s := ""等效于var s string
go易错要点
在代码编写过程中遇到的错误提示列举如下:
-
必须恰当导入需要的包,缺少了必要的包或者导入了不需要的包,程序都无法编译通过
"os" imported but not used -
Go语言不允许使用无用的局部变量,否则会报错
xx declared but not used -
Go语言的大括号强制要求左大括号一定要在语句后面。否则报错
"unexpected semicolon or newline before {
参考文献
go 语言圣经:books.studygolang.com/gopl-zh/