获取资源
https://golang.org/doc/install?download=go1.11.2.linux-amd64.tar.gz
安装
解压
[root@CentOS7 pkg]# tar -C /usr/local -xzf go1.11.2.linux-amd64.tar.gz
设置go环境变量
[root@CentOS7 heweiwei]# echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
设置gopath 这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg。
[root@CentOS7 heweiwei]# echo ”export GOPATH=/usr/local/mygo“ >> /etc/profile
[root@CentOS7 heweiwei]# source profile
[root@CentOS7 heweiwei]# go version
go version go1.11.2 linux/amd64
测试
hello.go
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
[heweiwei@CentOS7 go]$ go run hello.go
hello, world
配置vim
一,前往http://www.vim.org/scripts/script.php?script_id=2332,找到下方的最新版 pathogen.zip 下载
二,下载解压后你会得到一个名称为 autoload 的目录,将目录下的文件 pathogen.vim 拷贝至~/.vim/autoload/pathogen.vim
我这里没有直接拷过去
[heweiwei@localhost ~]$ unzip pathogen.zip
[heweiwei@localhost go]$ mv autoload/ ~/.vim
三,编辑 ~/.vimrc 文件,在顶部加入行 call pathogen#infect()。
四,进入目录 ~/.vim/bundle 后执行命令 git clone https://github.com/fatih/vim-go.git。
五,编辑 ~/.vimrc 文件,加入以下内容
let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1
六,vim 版本过旧可以选择忽略 或者升级vim至最新版本
编辑 ~/.vimrc 文件 加入一下内容
let g:go_version_warning = 0
参考
https://blog.csdn.net/xxy0403/article/details/55096038
程序的整体结构
举例
[heweiwei@localhost go]$ pwd
/home/heweiwei/go
[heweiwei@localhost go]$ tree
├── bin
│ └── gopath_test
├── pkg
│ └── linux_amd64
│ ├── github.com
│ │ └── astaxie
│ │ └── beedb.a
│ └── mymath.a
└── src
├── github.com
│ └── astaxie
│ └── beedb
│ ├── beedb.go
│ ├── example
│ │ ├── asta.db
│ │ ├── gomysql.go
│ │ ├── mssql.go
│ │ ├── mysql.go
│ │ ├── pg.go
│ │ └── sqlite.go
│ ├── README.md
│ ├── util.go
│ └── util_test.go
├── gopath_test
│ └── test.go
└── mymath
└── sqrt.go
12 directories, 15 files
说明
GOPATH下的src目录就是接下来开发程序的主要目录,所有的源码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目,例如:$GOPATH/src/mymath表示mymath这个应用包或者可执行应用,这个根据package是main还是其他来决定,main的话就是可执行应用,其他的话就是应用包,所以当新建应用或者一个代码包时都是在src目录下新建一个文件夹,文件夹名称一般是代码包名称,当然也允许多级目录,例如在src下面新建了目录$GOPATH/src/github.com/astaxie/beedb那么这个包路径就是"github.com/astaxie/beedb",包名称是最后一个目录beedb
使用到的命令
go install mymath
go get github.com/astaxie/beedb
go install gopath_test
Go 命令
Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们
常用的go命令
go build,
如果是普通包,就像mymath包那样,当你执行go build之后,它不会产生任何文件。如果你需要在$GOPATH/pkg下生成相应的文件,那就得执行go install。
如果是main包,当你执行go build之后,它就会在当前目录下生成一个可执行文件。如果你需要在$GOPATH/bin下生成相应的文件,需要执行go install,或者使用go build -o 路径/可执行文件。
go get,
这个命令是用来动态获取远程代码包的,目前支持的有BitBucket、GitHub、Google Code和Launchpad。这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install。
go clean,
这个命令是用来移除当前源码包和关联源码包里面编译生成的文件。
go install,
这个命令在内部实际上分成了两步操作:第一步是生成结果文件(可执行文件或者.a包),第二步会把编译好的结果移到$GOPATH/pkg或者$GOPATH/bin
go fmt,
使用go fmt命令,其实是调用了gofmt,而且需要参数-w,否则格式化结果不会写入文件。gofmt -w -l src,可以格式化整个项目。
go tool,go generate,
godoc,相当于man 比如 godoc -src fmt Printf
go version 查看go当前的版本
go env 查看当前go的环境变量
go list 列出当前全部安装的package
go run 编译并运行Go程序