Go小課01:第一行代碼

頭圖

1、Go環境搭建

一、安裝Go
  • 安裝命令
brew install go
複製代碼
  • 查看go版本
#查看版本(驗證是否安裝成功)
go version
複製代碼
二、新建GOPATH位置
  • GOPATH之下主要包含三個目錄: bin、pkg、src;其中bin目錄主要存放可執行文件; pkg目錄存放編譯好的庫文件, 主要是*.a文件; src目錄下主要存放Go的源碼文件。html

  • 根據本身的習慣設置GOPATH的位置,我是在文檔下新創建GoPath目錄,而後在該目錄下新建bin、pkg 和 src 三個子目錄,以下圖所示:mysql

1568903259005

三、環境變量配置
  • 變量解釋
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
複製代碼
四、配置生效
source ~/.bash_profile
複製代碼

說明:若是安裝了zsh工具,執行vi ~/.zshrc打開.zshrc,將 source ~/.bash_profile 粘貼到最下面,保存便可。git

五、查看環境配置
#查看環境,觀察GOROOT、GOPATH是否符合預期
go env
複製代碼

參考:github

2、Hello World

一、安裝GoLand
二、新建項目

項目在$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
複製代碼
三、單元測試
$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

四、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
複製代碼

3、開發必備輔助工具

一、Postman
二、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
複製代碼

4、小課堂

一、go get命令

go get能夠根據要求和實際狀況從互聯網上下載或更新指定的代碼包及其依賴包,並對它們進行編譯和安裝

標記名稱 標記描述
-d 讓命令程序只執行下載動做,而不執行安裝動做。
-f 僅在使用-u標記時纔有效。該標記會讓命令程序忽略掉對已下載代碼包的導入路徑的檢查。若是下載並安裝的代碼包所屬的項目是你從別人那裏Fork過來的,那麼這樣作就尤其重要了。
-fix 讓命令程序在下載代碼包後先執行修正動做,然後再進行編譯和安裝。
-insecure 容許命令程序使用非安全的scheme(如HTTP)去下載指定的代碼包。若是你用的代碼倉庫(如公司內部的Gitlab)沒有HTTPS支持,能夠添加此標記。請在肯定安全的狀況下使用它。
-t 讓命令程序同時下載並安裝指定的代碼包中的測試源碼文件中依賴的代碼包。
-u 讓命令利用網絡來更新已有代碼包及其依賴包。默認狀況下,該命令只會從網絡上下載本地不存在的代碼包,而不會更新已有的代碼包。

說明:一般咱們使用go get 命令時候,選擇-u參數。實現:下載或更新指定的代碼包及其依賴包,並對它們進行編譯和安裝。

二、go test
  • go test是go語言的程序測試工具,在目錄中,它是以*_test.go的文件形式存在,且go build並不會將其編譯,成爲構建的一部分。
  • 更多可參考:go test單元測試

後續

相關文章
相關標籤/搜索