golang-学习笔记-Go背景知识
Contents
在写过很多go代码之后,感觉自己并没有完全掌握go语言,还有很多知识盲区,所以有了这个go学习笔记系列,本系列是作者跟着电子书重新复习go语言相关内容的笔记
语言的特性
- Go 语言从本质上(程序和结构方面)来实现并发编程。
- Go 语言没有类和继承的概念通过接口(interface)的概念来实现多态性。
- 函数是 Go 语言中的基本构件,它们的使用方法非常灵活。
- Go 语言使用静态类型,隐式的类型转换是不被允许的
- Go 语言其实也有一些动态语言的特性(通过关键字 var)
- Go 语言支持交叉编译
Go 环境变量
go env
命令查看
几个重要的环境变量:
-
$GOROOT 表示 Go 在你的电脑上的安装位置
-
$GOARCH 表示目标机器的处理器架构
-
$GOOS 表示目标机器的操作系统
-
$GOBIN 表示编译器和链接器的安装位置
-
$GOGC设置最初的垃圾收集目标百分比,默认GOGC=100,设置GOGC=off 会完全关闭垃圾收集
-
$GOMAXPROCS限制可以同时运行用户层次的go代码的操作系统进程数
-
$GOTRACEBACK控制当go程序因为不能恢复的panic或不期望的运行时情况失败时的输出
go env -w xxx=xxx
设置环境变量
在 Linux 上安装 Go
- 设置 Go 环境变量 新版本使用go mod管理包,可以不用在每个项目设置gopath
|
|
- 安装 C 工具
|
|
- 获取 Go 源代码
|
|
- 构建 Go
|
|
- 测试安装
helloworld
- 验证安装版本
go version
- 更新版本
调试器
fmt包打印信息
- %+v 打印包括字段在内的实例的完整信息
- %#v 打印包括字段和限定类型名称在内的实例的完整信息
- %T 打印某个类型的完整说明
构建并运行 Go 程序
- go build 编译并安装自身包和依赖包
- go install 安装自身包和依赖包