Mac Golang 開發(fā)環(huán)境配置
Golang 介紹
Go(又稱Golang)是Google開發(fā)的一種靜態(tài)強類型、編譯型哗蜈、并發(fā)型耿焊,并具有垃圾回收功能的編程語言借笙。
由羅伯特·格瑞史莫,羅勃·派克(Rob Pike)及肯·湯普遜于2007年9月開始設計Go疗认,稍后Ian Lance Taylor完残、Russ Cox加入項目。Go是基于Inferno操作系統(tǒng)所開發(fā)的横漏。Go于2009年11月正式宣布推出谨设,成為開放源代碼項目,支持Linux缎浇、macOS扎拣、Windows等操作系統(tǒng)。在2016年素跺,Go被軟件評價公司TIOBE 選為“TIOBE 2016 年最佳語言”二蓝。
Go的語法接近C語言,但對于變量的聲明有所不同指厌。Go支持垃圾回收功能刊愚。Go的并行計算模型是以東尼·霍爾的通信順序進程(CSP)為基礎,采取類似模型的其他語言包括Occam和Limbo踩验,但它也具有pipeline模型的特征鸥诽,比如通道傳輸。在1.8版本中開放插件(Plugin)的支持箕憾,這意味著現(xiàn)在能從Go中動態(tài)加載部分函數(shù)牡借。
與C++相比,Go并不包括如枚舉袭异、異常處理蓖捶、繼承、泛型扁远、斷言俊鱼、虛函數(shù)等功能,但增加了 切片(Slice) 型畅买、并發(fā)并闲、管道、垃圾回收功能谷羞、接口等特性的語言級支持帝火。Go 2.0版本將支持泛型溜徙,對于斷言的存在,則持負面態(tài)度犀填,同時也為自己不提供類型繼承來辯護蠢壹。
開發(fā)環(huán)境搭建(MaxOS)
安裝 Golang SDK
1.Golang 官網(wǎng),進入下載頁面九巡,選擇對應自己操作系統(tǒng)的版本下載安裝图贸。
2.如果你使用的是 Homebrew 也可以使用 brew install go
來安裝。
安裝成功后一般不需要配置環(huán)境變量冕广,直接在命令行輸入 go env
來演張是否安裝成功疏日。
升級Golang
1.從官網(wǎng)下載最新的安裝程序覆蓋安裝,安裝包會替換原有的程序撒汉。
2.如果你是使用的 Homebrew 安裝直接使用 brew upgrade go
關于 GOROOT 和 GOPATH
GOROOT
GOROOT 就是你 go 的安裝目錄沟优,我用的是 MacOS 對應的 GOROOT 就是 /usr/local/go
目錄。Windows 和 Linux 也是同樣的道理睬辐。
GOPATH
GOPATH 時go依賴的一個重要環(huán)境變量:$GOPATH 挠阁,MacOS 安裝完 GO 后會自動把 /Users/username/go
目錄當作 GOPATH 。在GO的早起版本中溯饵,開發(fā)go項目一般每個項目都會有自己獨立的 GOPATH 從 v1.11 后 GO 的包管理方式逐漸轉換為 GOMOD侵俗,我們可以在命令行中輸入 go env
通過查看 GO111MODULE=on 這行來判斷是否啟用了 GOMOD ,如果你使用的是v1.13后的版本默認都是開啟的瓣喊。
自從引用了GOMOD后 GOPATH 的概念逐漸弱化(現(xiàn)在基本都會使用gomod來管理依賴坡慌,可以忘掉gopath)。在集成開發(fā)環(huán)境中配置好默認的 GOPATH 后藻三,使用gomod管理依賴洪橘,所有項目通過gomod下載的第三方依賴都會放到GOPATH下的pkg目錄。
GOMOD
Golang從誕生之初就一直有個被詬病的問題:缺少一個行之有效的“官方”包依賴管理工具棵帽。其原因是在Google內部熄求,所有人都是在一個代碼庫上進行開發(fā)的,因此并不是非常需要逗概。但Golang變成一個社區(qū)化的工程語言之后弟晚,這個問題被放大了。
1.GOPATH不符合一般開發(fā)者習慣逾苫,大部分人更習慣maven卿城、node modules之類的方式
2.GOPATH無法有效的管理版本依賴,沒有一個地方能夠表明依賴包的具體版本號铅搓,無法形成有效的版本配套關系
Golang 1.11 版本引入的 go mod 瑟押,其思想類似maven:摒棄vendor和GOPATH,擁抱本地庫星掰。
使用gomod也很簡單在工程目錄下執(zhí)行:go mod init {module name}多望,該命令會創(chuàng)建一個go.mod文件嫩舟。
examples
- http_demo.go
package main
import (
"fmt"
"github.com/asmcos/requests"
)
func main() {
req := requests.Requests()
resp, _ := req.Get("https://baidu.com")
fmt.Println(resp.R.StatusCode)
fmt.Println(resp.R.Header["Content-Type"])
}
- go.mod
module HelloWorld
go 1.13
require (
github.com/asmcos/requests v0.0.0-20181227105501-5384de75ad0b // indirect
)
使用集成開發(fā)環(huán)境開發(fā)Golang程序
在開發(fā)中我使用 Goland 來開發(fā) GO 程序。
1.Preferences > Go > GOROOT 配置你GO的安裝位置
2.Preferences > Go > Global GOPATH 配置你GOPATH位置
這兩項配置后基本上就可以開心的開發(fā)GO程序了怀偷。