Go小课01:第一行代码

2,246

头图

一、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 三个子目录,如下图所示:

1568903259005

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
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 get -u github.com/cweill/gotests/...
  • 选中函数右键Go To TEST ,然后选择Generate for selection 生成测试代码。

image-20190919224346257

  • 在生成的测试代码基础上增加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)

image-20190919224535050

4、Goland的调试
  • 调试入口就是右边那个调试的小虫子,代码中加上断点就可以了

image-20190919225020733

  • 如果报如下错误:
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
2、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单元测试

后续