Contents

golang-学习笔记-Go背景知识

go官方文档 go语言参考

在写过很多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

  1. 设置 Go 环境变量 新版本使用go mod管理包,可以不用在每个项目设置gopath
1
2
3
export GOROOT=$HOME/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/Applications/Go
  1. 安装 C 工具
1
 sudo apt-get install bison ed gawk gcc libc6-dev make
  1. 获取 Go 源代码
1
2
3
 wget https://storage.googleapis.com/golang/go<VERSION>.src.tar.gz
 tar -zxvf go<VERSION>.src.tar.gz
 sudo mv go $GOROOT
  1. 构建 Go
1
2
cd $GOROOT/src
 ./all.bash
  1. 测试安装

helloworld

  1. 验证安装版本

go version

  1. 更新版本

调试器

fmt包打印信息

  • %+v 打印包括字段在内的实例的完整信息
  • %#v 打印包括字段和限定类型名称在内的实例的完整信息
  • %T 打印某个类型的完整说明

构建并运行 Go 程序

  • go build 编译并安装自身包和依赖包
  • go install 安装自身包和依赖包
 |