Go入門:創建第一個Go工程


前言

我是一名iOS開發.
因為公司后台都用的Go.

因為對服務端不了解.
所以想自己學習學習.

環境

因為自己的電腦是mac.然后在阿里雲買的是centOS的服務器.
所以下面搭建的環境都是在centOS系統和MacOS系統下的.

一.學習資料

慕課網Go視頻教程
GitHub實戰教程19000星
beego教程
go視頻教程

二.安裝

1.1.安裝包安裝

Go官網下載安裝包
如下圖.一直點繼續即可.

go.png

安裝完成后在終端查看是否安裝成功

go.png

1.2.CentOS下用yum安裝

// 開始安裝
$ sudo yum install golang

// 驗證是否安裝成功
$ go version

1.3.MacOS下brew安裝

// 開始安裝
$ brew install go

// 驗證是否成功
$ go env

二.創建第一個GO工程

官方創建第一個程序的視頻

go.png

1.創建工程的文件夾GXGo

2.在GXGo文件夾里創建src/pkg/bin三個文件夾

3.在src里創建hello文件夾

4.在hello文件夾里創建main工程類
代碼如下

go.png

5.設置GOPATH

export GOPATH=~/Desktop/GXGo

查看是否設置成功

go.png

6.cd到hello文件夾路徑下.運行install命令

go.png

7.此時go就把hello類編譯成了可執行文件.
放在了GXGo/bin路徑下
cd到GXGo/bin路徑下

go.png

8.運行hello包

go.png

大功告成.你的第一個go項目跑起來了.

問題一.為什么要創建這三個文件夾呢.
因為GO規定的.
GO規定如下:
src: 存放源代碼(.go .c .h .s等)
pkg: 編譯后生成的文件 (如: .a)
bin: 編譯后生成的可執行文件(為了方便.可以把此目錄加入到$PATH變量中.如果有多個GOPATH,那么使用${GOPATH//://bin:}/bin添加所有的bin目錄)

三.環境變量解釋

go.png

Go安裝完成后.
他會提示你需要設置GOPATH和PATH兩個變量.

GOPATH

指的是你的go項目文件夾路徑如: ~/Desktop/GXGo
設置這個是為了能找到你項目文件路徑下的src/bin/pkg三個文件夾(這三個文件是需要你手動創建的.也是必須創建的)
這樣你運行go install的時候.go就會把編譯好的包放進GXGo/bin文件夾里.

PATH

PATH是linux自帶的一個變量.他相當於給某個文件夾A設置成快捷路徑.
你在任何路徑下都可以直接訪問文件夾A里的腳本.
你可以用終端打印一下PATH已經設置了哪些路徑.如下.

go.png

當我們運行了go install后.
編譯好的包就存放在GXGo/bin路徑下.
如果想運行這個包.
就需要cd到這個路徑下.
然后才能運行這個包.

這樣太麻煩了.
我們可以給PATH變量再添加一個快捷路徑.如下
export PATH=$PATH:~/Desktop/GXGo/bin

此時你再echo $PATH 就發現你剛才添加的路徑已經在里面了.如下

go.png

這樣我們就可以在任何路徑下都能運行GXGo/bin文件夾里的包了.
就不用如上跑到GXGo/bin下運行包文件了.

GOROOT

即你go包安裝的根路徑
一般是go自動設置好的.你可以使用go env查看一下.
如下GOROOT為/usr/local/Cellar/go/1.9.2/libexec
我們可以去這個路徑下查看是否有這個文件.如果有.那就表示不需要我們設置了
如果沒有.那就需要export GOROOT=<此處應為go的安裝根路徑>

go.png

四.包引用

現在我們運行了我們創建的第一個工程.
那如果我這個hello.go類想引用我寫的另一個string.go類的方法.
該怎么實現呢.

1.首先創建string.go類

go.png

2.代碼如下
這里Reverse方法實現的功能是吧字符串倒序輸出
如Hello => olleH

go.png

3.回到hello.go類
import string類.
在輸出的地方調用string類的Reverse方法.並且輸出返回結果

go.png

4.install
重新install hello.go類.
並且運行hello
發現結果成功變成了倒序.

go.png

小問題:
直接在終端export修改環境變量.
只在當前這次進程起作用
如果想永久性改變
需要修改~/.zshrc文件 (zsh用戶)
(bash用戶修改~/.bashrc)

將上面export的寫入~/.zshrc文件
然后運行source ~/.zshrc

五.單元檢測

你寫完了一個功能.沒有單元檢測肯定是不行的.
那單元檢測在go里怎么寫呢.

1.在string文件夾里創建string_test.go

go.png

2.代碼如下
這里是檢測了三種案例
Backward
Hello,世界
“”
並且給出了期望的正確結果

go.png

3.運行單元測試go test

go.png

4.發現出錯了.
我們發現中文亂碼了.
回到string.go類.
我們發現輸入的接受類型為byte.他不支持utf-8
那我們可以改成rune就可以了.如下

go.png

5.再次運行test
開不開森.運行成功啦.

go.png


作者:Sunxxxxx丶
鏈接:https://www.jianshu.com/p/6313e0460a44
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM