1 环境
本文使用Ubuntu20.04+goland,Ubuntu18.04与Ubuntu19.04亦可作参考。
2 golang安装
首先,在官网下载相应安装包。 解压缩到自己想放的文件夹:
tar -zxvf go1.12.1.linux-amd64.tar.gz -C /opt
进入/opt设置权限:
sudo chmod -R 0777 go
3 环境变量设置
主要设置GOROOT和GOPATH两个环境变量,其中GOPATH表工作目录,但实际可以随意设置,因为后续开发里大多使用go mod。我把GOPATH创建在主目录中。
使用sudo gedit /etc/profile打开设置文件,并做修改:
#for golang
export GOROOT=/opt/go #GOROOT是系统上安装Go软件包的位置。
export GOPATH=/home/wucp/GOPATH #GOPATH是工作目录的位置。
export PATH=$GOPATH/bin:$GOROOT/bin:$PATH
使设置马上生效:
. etc/profile
查看配置: 后面还有,不截全部了。
3.1 创建helloworld
mkdir $GOPATH/src/github.com/Winszheng/hello -p
创建hello.go文件:
package main
import "fmt"
func main() {
fmt.Printf("hello, world\n")
}
终端运行,第一个go程序完成:
4 安装必要的工具和插件
安装git客户端,这个能学go的应该都已经安装了。
4.1 解决go get速度很慢的问题
对初学者来说,go get速度很慢是常见问题。参考七牛云解决,之后下载源代码到本地:
# 创建文件夹
mkdir $GOPATH/src/golang.org/x/
# 下载源码
go get -d github.com/golang/tools
# copy
cp $GOPATH/src/github.com/golang/tools $GOPATH/src/golang.org/x/ -rf
注意go get下载的包默认放在$GOPATH/src中。
4.2 安装工具包:
go install golang.org/x/tools/go/buildutil
4.3 安装运行 hello world
go install github.com/github-user/hello
运行:
5 安装与运行go tour
go get github.com/Go-zh/tour/gotour
gotour
6 第一个包与测试
创建包目录:
mkdir $GOPATH/src/github.com/user/stringutil
创建reverse.go文件:
// stringutil 包含有用于处理字符串的工具函数。
package stringutil
// Reverse 将其实参字符串以符文为单位左右反转。
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}
用go build测试包的编译:
go build
修改hello.go文件:
package main
import (
"fmt"
"github.com/Winszheng/stringutil"
)
func main() {
fmt.Printf(stringutil.Reverse("!oG ,olleH"))
}
然后go install安装hello程序,stringutil 包也会被自动安装。
重新运行此程序:
至此,需要区分go run,go install,go build之间的关系
7 区分go run,go install,go build
7.1 概念
go run:go run 编译并直接运行程序,它会产生一个临时文件(但不会在$GOPATH/bin生成.exe 文件),直接在命令行输出程序执行结果,方便用户调试。
go build:用于测试编译包,在项目目录下生成可执行文件(有main包)。
go install:主要用来生成库和工具。一是编译包文件(无main包),将编译后的包文件放到 pkg 目录下($GOPATH/pkg)。二是编译生成可执行文件(有main包),将可执行文件放到 bin 目录($GOPATH/bin)。
7.2 区别
- go build在当前目录生成可执行文件,不生成包文件
- go install在$GOPATH/bin生成可执行文件或在pkg目录生成包文件。
- 在源码目录下执行go install和go build都可以省略路径,go run一定要跟文件名。go程序安装好后,可以通过GOPATH/bin/hello运行,如果已经将\GOPATH/bin添加到PATH中,直接输入二进制文件名hello即可。
7.3 注意
- go 工具只有在发生错误时才会打印输出,因此若命令没有产生输出, 就表明执行成功了。
8 文章参考
如何使用go编程 这次文章的目的是了解golang整个项目构造思路。