一、Go环境搭建
1、安装Go
- 安装命令
brew install go
复制代码
- 查看go版本
#查看版本(验证是否安装成功)
go version
复制代码
2、新建GOPATH位置
-
GOPATH之下主要包含三个目录: bin、pkg、src;其中bin目录主要存放可执行文件; pkg目录存放编译好的库文件, 主要是*.a文件; src目录下主要存放Go的源码文件。
-
根据自己的习惯设置GOPATH的位置,我是在文档下新建立GoPath目录,然后在该目录下新建bin、pkg 和 src 三个子目录,如下图所示:
3、环境变量配置
- 变量解释
GOROOT:Go的安装路径
GOPATH:若干工作区目录的路径。是我们自己定义的工作空间,存放Go源码,Go可执行文件,以及编译之后的库文件。
GOBIN:GO 程序生成的可执行文件
复制代码
- 打开~/.bash_profile,然后添加如下内容
#GOROOT
export GOROOT=/usr/local/opt/go/libexec
#GOPATH
export GOPATH=$HOME/Documents/GoWorkspace
#GOPATH bin
export PATH=$PATH:$GOPATH/bin
#GOPATH root bin
export PATH=$PATH:$GOROOT/bin
复制代码
4、配置生效
source ~/.bash_profile
复制代码
说明:如果安装了zsh工具,执行vi ~/.zshrc
打开.zshrc
,将 source ~/.bash_profile
粘贴到最下面,保存即可。
5、查看环境配置
#查看环境,观察GOROOT、GOPATH是否符合预期
go env
复制代码
参考:
二、Hello World
1、安装GoLand
-
推荐使用Goland作为IDE
-
参考:
2、新建项目
项目在$GOPATH/src下,项目根路径下,新建main.go
文件。
package main
import (
"fmt"
)
func isBigNumber(a,b int) int{
if a > b {
return a
}
return b
}
func main() {
fmt.Println("比较大的数", isBigNumber(19,8))
}
复制代码
说明:检查Preference -> Settings → Go → GOROOT 的GOPATH和GOROOT是否和~/.bash_profile配置一样,然后执行Run,成功的话,会获得如下结果:
比较大的数 19
复制代码
3、单元测试
- 先安装go test (仓库地址:github.com/cweill/gote…)
$go get -u github.com/cweill/gotests/...
复制代码
- 选中函数右键Go To TEST ,然后选择Generate for selection 生成测试代码。
- 在生成的测试代码基础上增加test cases ,完整代码如下:
package main
import "testing"
func Test_isBigNumber(t *testing.T) {
type args struct {
a int
b int
}
tests := []struct {
name string
args args
want int
}{
// TODO: Add test cases.
{
args: args{
a : 5,
b : 12,
},
want : 12,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := isBigNumber(tt.args.a, tt.args.b); got != tt.want {
t.Errorf("isBigNumber() = %v, want %v", got, tt.want)
}
})
}
}
复制代码
- 执行测试代码,结果如下(通过测试case,显示PASS)
4、Goland的调试
- 调试入口就是右边那个调试的小虫子,代码中加上断点就可以了
- 如果报如下错误:
could not launch process: debugserver or lldb-server not found: install XCode's command line tools or lldb-server
复制代码
- 解决办法是:在终端重新安装下xcode-select
xcode-select --install
复制代码
三、开发必备辅助工具
1、Postman
-
安装Postman, 下载地址:www.getpostman.com/downloads/
-
Postman导入如下请求配置JSON
2、MySQL
- 下载MySQL : dev.mysql.com/downloads/m…
- MySQL服务使用
# 启动MySQL服务
sudo /usr/local/MySQL/support-files/mysql.server start
# 停止MySQL服务
sudo /usr/local/mysql/support-files/mysql.server stop
# 重启MySQL服务
sudo /usr/local/mysql/support-files/mysql.server restart
# 登录
mysql -u root -p
复制代码
四、小课堂
1、go get命令
go get
可以根据要求和实际情况从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装
标记名称 | 标记描述 |
---|---|
-d | 让命令程序只执行下载动作,而不执行安装动作。 |
-f | 仅在使用-u 标记时才有效。该标记会让命令程序忽略掉对已下载代码包的导入路径的检查。如果下载并安装的代码包所属的项目是你从别人那里Fork过来的,那么这样做就尤为重要了。 |
-fix | 让命令程序在下载代码包后先执行修正动作,而后再进行编译和安装。 |
-insecure | 允许命令程序使用非安全的scheme(如HTTP)去下载指定的代码包。如果你用的代码仓库(如公司内部的Gitlab)没有HTTPS支持,可以添加此标记。请在确定安全的情况下使用它。 |
-t | 让命令程序同时下载并安装指定的代码包中的测试源码文件中依赖的代码包。 |
-u | 让命令利用网络来更新已有代码包及其依赖包。默认情况下,该命令只会从网络上下载本地不存在的代码包,而不会更新已有的代码包。 |
说明:通常我们使用go get 命令时候,选择-u参数。实现:下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。
2、go test
go test
是go语言的程序测试工具,在目录中,它是以*_test.go
的文件形式存在,且go build
并不会将其编译,成为构建的一部分。- 更多可参考:go test单元测试
后续
有疑问加站长微信联系(非本文作者)