Go語言概述
一、Go語言概述
Go語言是一個(gè)比較年輕的語言,是Google的Robert Griesemer、Rob Pike及Ken Thompson開發(fā)的,它是一種靜態(tài)強(qiáng)類型、編譯型、并發(fā)型的編程語言,并具有垃圾回收功能。
1.Go語言的特性
1.優(yōu)雅的語法:語法類似于C語言,同時(shí)又融合了其他編程語言的優(yōu)點(diǎn)。
2.原生地支持并發(fā):Go語言使用了類協(xié)程的方式來處理并發(fā)單元,在運(yùn)行層面做了更深的優(yōu)化處理,實(shí)現(xiàn)并發(fā)非常簡單,只需要使用關(guān)鍵字go即可,不像其他編程語言需要借助第三方庫,比如Python需要借助threading、multiprocess等。
3.靜態(tài)鏈接:編寫完Go項(xiàng)目程序后,只需編譯成目標(biāo)操作系統(tǒng)的可執(zhí)行文件,即可在對應(yīng)的平臺上執(zhí)行,無須依賴任何運(yùn)行庫。
4.豐富的生態(tài)圈:有豐富的標(biāo)準(zhǔn)庫和活躍的社區(qū),也有著豐富的命令行工具,編譯、運(yùn)行、測試、代碼結(jié)構(gòu)化等操作都可以使用命令行工具來完成。市面上有著很多包管理工具,如Govendor、Glide和Dep等。在Go1.11版本開始支持Go moudle來進(jìn)行項(xiàng)目程序的包管理。使用Go開發(fā)的產(chǎn)品,如Docker、nsq、etcd等當(dāng)下比較熱門的項(xiàng)目。
2.開發(fā)環(huán)境搭建
最新版本Go1.18已在2022年3月15日正式發(fā)布,因此以最新版本為例,介紹Go語言的安裝與配置,與絕大多數(shù)軟件的下載一致,選擇與目標(biāo)操作系統(tǒng)匹配的安裝包、二進(jìn)制文件和源代碼安裝即可。
2.1設(shè)置環(huán)境變量,和Go相關(guān)的幾個(gè)環(huán)境變量為:
GOPATH:項(xiàng)目程序目錄
GOROOT:Go源代碼的安裝目錄
GOBIN:Go程序經(jīng)編譯后生成的可執(zhí)行文件的存放目錄
2.2Linux操作系統(tǒng)設(shè)置方法
tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
#環(huán)境變量設(shè)置為:
export GOROOT=/usr/local/go
export GOPATH=/Users/go
export GOBIN=$GOPATTH/bin
export PATH=$PATH:/usr/local/go/bin
#查看Go相關(guān)環(huán)境變量
go env
#查看Go版本
go version
2.3windows系統(tǒng)設(shè)置方法
gopath是一個(gè)環(huán)境變量,工作路徑,用于存放所寫的代碼。最好只設(shè)置一個(gè),所有的代碼都放到GOPATH的src目錄下。
1. 右擊電腦,查看屬性,打開系統(tǒng)高級配置,設(shè)置環(huán)境變量,變量名:GOPATH,變量值:E:\Go\GO_code
2. 在E:\Go\GO_code此目錄下新建三個(gè)目錄:src、pkg、bin
3. 將%USERPROFILE%\go\bin默認(rèn)路徑更改為E:\Go\GO_code\bin
在cmd里go env可以查看go的環(huán)境變量設(shè)置
2.4配置proxy
由于國內(nèi)訪問GitHub會造成timeout,所以我們需要配置一個(gè)PROXY(推薦使用https://goproxy.io或https://goproxy.cn)
go env -w GOPROXY=https://goproxy.cn
3.命令行及編譯
3.1需要GOPATH支持的方式
Go的工作目錄結(jié)構(gòu)有bin、pkg、src三個(gè)(在GOPATH目錄下)
bin:編譯后的可執(zhí)行程序的存儲目錄
pkg:編譯時(shí)生成的對象文件
src:庫文件
3.2不需要GOPATH支持的方式
Go版本1.11以上支持設(shè)置GOROOT化境變量,在任意目錄下創(chuàng)建項(xiàng)目程序即可,內(nèi)置的命令行工具常用的命令有:
go build:將程序編譯成可執(zhí)行文件
go run:將程序先編譯成可執(zhí)行文件,再運(yùn)行程序
go fmt:格式化代碼,比如換行、縮進(jìn)等
go test:運(yùn)行測試的命令
go get:下載第三方庫的常用命令
go version:查看當(dāng)前操作系統(tǒng)中安裝的Go語言系統(tǒng)版本信息
go env:查看當(dāng)前操作系統(tǒng)和Go語言相關(guān)的環(huán)境變量的值
4.跨平臺編譯
默認(rèn)我們go build的可執(zhí)行文件都是當(dāng)前操作系統(tǒng)可執(zhí)行的文件,Go語言支持跨平臺編譯——在當(dāng)前平臺(例如Windows)下編譯其他平臺(例如Linux)的可執(zhí)行文件。
4.1.Windows編譯Linux可執(zhí)行文件
如果你的Windows使用的是cmd,那么按如下方式指定環(huán)境變量。
SET CGO_ENABLED=0 GOOS=linux GOARCH=amd64 // 禁用CGOSET,目標(biāo)平臺是linuxSET,目標(biāo)處理器架構(gòu)是amd64
如果你的Windows使用的是PowerShell終端,那么設(shè)置環(huán)境變量的語法為
$ENV:CGO_ENABLED=0$ENV:GOOS="linux"
$ENV:GOARCH="amd64"
在你的Windows終端下執(zhí)行完上述命令后,再執(zhí)行下面的命令,得到的就是能夠在Linux平臺運(yùn)行的可執(zhí)行文件了。
go build
4.2.Windows編譯Mac可執(zhí)行文件
Windows下編譯Mac平臺64位可執(zhí)行程序:
cmd終端下執(zhí)行:
SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd64go build
PowerShell終端下執(zhí)行:
$ENV:CGO_ENABLED=0$ENV:GOOS="darwin"
$ENV:GOARCH="amd64"
go build
4.3.Mac編譯Linux可執(zhí)行文件
Mac電腦編譯得到Linux平臺64位可執(zhí)行程序:
CGO_ENABLED=0
GOOS=linux
GOARCH=amd64
go build
4.4.Mac編譯Windows可執(zhí)行文件
Mac電腦編譯得到Windows平臺64位可執(zhí)行程序:
CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build
4.5.Linux編譯Mac可執(zhí)行文件
Linux平臺下編譯Mac平臺64位可執(zhí)行程序:
CGO_ENABLED=0
GOOS=darwin
GOARCH=amd64
go build
4.6.Linux編譯Windows可執(zhí)行文件
Linux平臺下編譯Windows平臺64位可執(zhí)行程序:
CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build
posted on 2022-09-16 20:37 亂流的時(shí)空 閱讀(239) 評論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號