go語言之 go簡介及go開發工具安裝


Go 語言之 開發工具

一:Go語言介紹

Go 語言是什么

2009年11月10日,Go語言正式成為開源編程語言家庭的一員。


Go語言(或稱Golang)是雲計算時代的C語言。Go語言的誕生是為了讓程序員有更高的生產效率,Go語言專門針對多處理器系統應用程序的編程進行了優化,使用Go編譯的程序可以媲美C或C++代碼的速度,而且更加安全、支持並行進程。


開發人員在為項目選擇語言時,不得不在快速開發和性能之間做出選擇。C和C++這類語言提供了很快的執行速度,而 Ruby 和 Python 這類語言則擅長快速開發。Go語言在這兩者間架起了橋梁,不僅提供了高性能的語言,同時也讓開發更快速。


Go語言優勢

  • 可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔一個文件上去就完成了。

  • 靜態類型語言,但是有動態語言的感覺,靜態類型的語言就是可以在編譯的時候檢查出來隱藏的大多數問題,動態語言的感覺就是有很多的包可以使用,寫起來的效率很高。

  • 語言層面支持並發,這個就是Go最大的特色,天生的支持並發。Go就是基因里面支持的並發,可以充分的利用多核,很容易的使用並發。

  • 內置runtime,支持垃圾回收,這屬於動態語言的特性之一吧,雖然目前來說GC(內存垃圾回收機制)不算完美,但是足以應付我們所能遇到的大多數情況,特別是Go1.1之后的GC。

  • 簡單易學,Go語言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go關鍵字是25個,但是表達能力很強大,幾乎支持大多數你在其他語言見過的特性:繼承、重載、對象等。

  • 豐富的標准庫,Go目前已經內置了大量的庫,特別是網絡庫非常強大。

  • 內置強大的工具,Go語言里面內置了很多工具鏈,最好的應該是gofmt工具,自動化格式化代碼,能夠讓團隊review變得如此的簡單,代碼格式一模一樣,想不一樣都很困難。

  • 跨平台編譯,如果你寫的Go代碼不包含cgo,那么就可以做到window系統編譯linux的應用,如何做到的呢?Go引用了plan9的代碼,這就是不依賴系統的信息。

  • 內嵌C支持,Go里面也可以直接包含C代碼,利用現有的豐富的C庫。


Go 適合用來做什么

  • 服務器編程,以前你如果使用C或者C++做的那些事情,用Go來做很合適,例如處理日志、數據打包、虛擬機處理、文件系統等。

  • 分布式系統,數據庫代理器等。

  • 網絡編程,這一塊目前應用最廣,包括Web應用、API應用、下載應用。

  • 內存數據庫,如google開發的groupcache,couchbase的部分組建。

  • 雲平台,目前國外很多雲平台在采用Go開發,CloudFoundy的部分組建,前VMare的技術總監自己出來搞的apcera雲平台。


二:Go語言開發環境和工具

go語言編譯器: 官方地址:https://golang.google.cn/dl/

鏈接:https://pan.baidu.com/s/1twRPDRR_oKyfxQhwKqk1ag?pwd=20n2
提取碼:20n2

VSCode:

鏈接:https://pan.baidu.com/s/1WWfdqU1nvNJJDxnFLCHEXw?pwd=4e9c
提取碼:4e9c



go語言編譯器安裝

安裝

安裝,只要注意 go 的安裝路徑,其他全部默認,點擊下一步即可

image-20220314211217577


安裝完畢后,進入到go 的安裝路徑。在安裝目錄下,有個bin 目錄,這個go的命令存放目錄

image-20220314211456469



設置和修改環境變量

在自己想要的位置,新建文件夾goproject ,用於存放項目。在goproject 文件夾下,新建文件夾src ,用於存放源碼

image-20220314212331390


右擊此電腦---->屬性----->高級設置--->環境變量

image-20220314211736255

image-20220314211746697

image-20220314211810868


在用戶變量中,有GOPATH,這里定義的路徑,是我們擴程序下載存放的目錄。 以及在PATH 路徑中,定義了go的執行文件,路徑。

這兩個我們都要刪除

image-20220314211937378


新建系統變量。變量名: GOROOT ,變量值:go的安裝目錄

image-20220314212515490

image-20220314212605744


修改Path 路徑,將go 的安裝目錄下的 bin 目錄,加入到Path路徑中

image-20220314212709063****

image-20220314212829940


新建系統變量GOPATH,這個是go的環境變量,設置項目,源碼的存放路徑。變量名為GOPATH ,變量值為新建的goproject目錄的位置

image-20220314213019468

image-20220314213058650


使用win+r ,輸入 cmd ,打開windows的命令行

使用go version 查看go 版本,如果能夠看到go 的版本號,說明path 路徑生效

image-20220314213343313


使用go env 能夠查看到go的環境變量。此時可以看到GOPATH和GOROOT的值都是我們之前設置的

image-20220314213714922

set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Administrator\AppData\Local\go-build
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=F:\goproject\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=F:\goproject
set GOPRIVATE=
set GOPROXY=https://proxy.golang.org,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.8
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build3145478798=/tmp/go-build -gno-record-gcc-switches


安裝vscode

安裝

image-20220228112032120

image-20220228112104768

image-20220228112117454

image-20220228112131795

image-20220228112141081


在安裝完畢,啟動進入后,可以選擇安裝中文包

image-20220228112304062


三 vs加載goproject項目,下載go擴展

文件--->打開文件夾(Open Folder....)--->找到 goproject目錄---->打開文件夾

此時會自動加載src文件夾


image-20220314214110547

image-20220314214133831

image-20220314214148231


點擊左側的擴展,然后搜go ,安裝GO

image-20220314214707520

image-20220314214733151


回到資源管理,選中src,然后點擊新建文件夾,文件夾名,如dev_code

image-20220314214902968


然后繼續選中,在dev_code下繼續創建文件夾,如day1,然后繼續選中,創建文件夾example1.

此時,創建的文件依次遞進。在目錄goproject 的src 目錄下,也會依次生成目錄

image-20220314215238044

image-20220314215303439



在example1 目錄先,新建文件 text.go ,文件需要以 .go 擴展名結尾

創建完畢后,會跳出彈窗,要求下載 go擴展。 但是因為是從github上下載,所以不一定會成功。此時需要配置代理

image-20220314215457864

image-20220314215655760


go 的代理地址網站:https://goproxy.io/zh/

image-20220314220017904


打開環境變量設置,新建系統變量

變量名: GOPROXY

變量值:https://proxy.golang.com.cn,direct

image-20220314220204892


設置完代理后,關閉vscode,重新打開,然后會再次彈出下載go擴展,點擊下載全部install all

image-20220314220452879

此時,在輸出 欄,會告訴你 下載一下的插件

image-20220314220608004


需要看到All tools successfully installed. You are ready to Go :). 才下載完畢。如果有擴展沒有下載下倆,可以關閉vscode,然后重新打開,會自動彈出對話框,要求下載,然后重新下載即可

image-20220314221141959


如果go擴展插件下載,出現報錯Error:無法解析不存在的文件 ,可以不用管它,只要最終出現All tools successfully installed. You are ready to Go :).即可

image-20220314221544655


四:編寫和打包第一個GO程序

編寫程序

在test.go中,編寫以下程序(輸出hello world)

// 定義一個包,每個go文件都要歸屬於一個包
package main

//導入工具包,可以使用包中的方法,函數。實現相關的功能
//輸出語句,屬於fmt 包
import (
	"fmt"
)

// 定義運行的主函數(每個程序都有主函數,是程序的唯一的入口。入口有且只有一個,出口可以有多個)
//函數名不可以亂寫,必須是main
func main() {
	//使用fmt包里的Println功能。print打印, ln 表示自動轉行的功能
	fmt.Println("hello world")
}

image-20220315000223834



然后,按ctrl +s 保存。或者在 文件--->保存

image-20220315000259156


運行程序

運行程序方法一:(使用擴展code runner)

擴展--->搜索code runner --->安裝coderunner擴展

image-20220315000534521


安裝完畢后,返回test.go,頁面,點擊右上角的三角符號,運行程序。

image-20220315000631892



運行程序方法二:(腳本方式運行)

在終端,以腳本的方式運行

image-20220315001024481


進入到腳本所在的目錄

cd .\src\dev_code\day1\example1\
ls

 go run .\text.go

image-20220315001115599

image-20220315001240579


運行程序方法三(對程序腳本打包)

將腳本進行構建成程序,然后運行程序

go build .\src\dev_code\day1\example1\text.go
ls
.\text.exe

image-20220315001655446


運行程序方法四(對程序所在目錄打包)

當一個目錄下有多個腳本文件時,我們可以直接對目錄進行構建

// 對example1 目錄進行構建
go build .\src\dev_code\day1\example1

對整個目錄構建,報錯go: go.mod file not found in current directory or any parent directory; see 'go help modules'

image-20220315002210518

Package包波浪線說明:這是因為gomod和gopath兩個包管理方案,並且相互不兼容

即使項目在GOPATH 定義的路徑中,GO111MODULE=on 仍然強制使用Go模塊。仍然需要go.mod才能正常工作

image-20220315002636094

go env

//獲取到的環境變量如下

set GO111MODULE=on
set GOARCH=amd64  
set GOBIN=
set GOCACHE=C:\Users\Administrator\AppData\Local\go-build
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env  
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=F:\goproject\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=F:\goproject
set GOPRIVATE=
set GOPROXY=https://proxy.golang.com.cn,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.8
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build3492386364=/tmp/go-build -gno-record-gcc-switches

此時,我們可以關閉GO111MODULE

image-20220315002815919

go env -w GO111MODULE=off
go env
//獲取到的go 環境變量如下
set GO111MODULE=off
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\Administrator\AppData\Local\go-build
set GOENV=C:\Users\Administrator\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=F:\goproject\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=F:\goproject
set GOPRIVATE=
set GOPROXY=https://proxy.golang.com.cn,direct
set GOROOT=C:\Program Files\Go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLDIR=C:\Program Files\Go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.17.8
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=C:\Users\ADMINI~1\AppData\Local\Temp\go-build2414259400=/tmp/go-build -gno-record-gcc-switches

注意,項目要在GOPATH定義的目錄中


再次構建整個目錄

go build .\src\dev_code\day1\example1
ls
 .\example1.exe

image-20220315002914325



五 附錄

GOPATH路徑不生效

即使我們在系統變量里設置了GOPATH的路徑,但是依舊不生效,使用go env 查看,獲取到的結果也不是我們定義的

這是因為go 默認在用戶 環境設置里 定義 GOPATH,並且,也在用戶環境變量里 定義了PATH路徑。這會覆蓋系統變量。 我們需要 刪除 用戶環境設置里的 GOPATH以及用戶環境變量里PATH變量里go 的那一部分

image-20220314211937378



調整vscode的字體大小

文件--->首選項---->設置---->Font Size

image-20220315004602838

image-20220315004615074


免責聲明!

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



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