[go]go介绍

go介绍及安装

Don't communicate by sharing memory, share memory by communicating.
Concurrency is not parallelism.
Channels orchestrate; mutexes serialize.
The bigger the interface, the weaker the abstraction.
Make the zero value useful.
interface{} says nothing.
Gofmt's style is no one's favorite, yet gofmt is everyone's favorite.
A little copying is better than a little dependency.
Syscall must always be guarded with build tags.
Cgo must always be guarded with build tags.
Cgo is not Go.
With the unsafe package there are no guarantees.
Clear is better than clever.
Reflection is never clear.
Errors are values.
Don't just check errors, handle them gracefully.
Design the architecture, name the components, document the details.
Documentation is for users.
Don't panic.
自动gc,只需new即可, 无需关注堆内存释放.
天然支持并发 - go关键字管理并发
channel - goroutine通信工具
多返回值
//设置GOPATH环境变量(1.8后默认就是$HOME/go)
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

//设置gopath里的目录
mkdir -p $GOPATH/src $GOPATH/pkg $GOPATH/bin

  所有源代码位于 src(比较死板,所有的项目都放这里)
  包对象位于 pkg(go get的包存放)
  编译好的程序位于 bin
  • 几个环境变量说明
// GOROOT go程序安装目录
// GOPATH1.8之后默认 go path是 `$HOME/go`, vendor管理包时, 项目必须存放这下面才能找到依赖. 也可手动指定.


- a. GOPATH是一个环境变量,用来表明go项目的存放路径, go get下载的包都放到了$GOPATH/src下
- b. GOPATH路径最好只设置一个,所有的项目都放到GOPATH的src目录下
- c. GOPATH的⽬目录结构介绍

声明: 如果使用go mod管理 gopath对项目放哪里及目录结构划分将变得毫无意义. 唯一的用处是存放第三方依赖 $HOMEpkgmod
  • go命令
go run     快速执行go文件,就像执行脚本一样
go build   编译程序,生成二进制可执行文件
go install 安装可执行文件到bin目录(相当于go build+cp)


go test 执行单元测试或压力测试
go env 显示go相关的环境变量
go fmt 格式化源代码
原文地址:https://www.cnblogs.com/iiiiiher/p/11965762.html