Golang筆記 1 Golang安裝與配置

2021-10-04 19:28:40 字數 2277 閱讀 5723

一、macos

3、建立gopath路徑  $home/go

4、配置環境變數

cd ~

vim .bash_profile

export goroot=/usr/local/go

export path=$path:/$goroot

export gopath=$home/go

二、linux

wget 

sudo tar -c /usr/local -xzf go1.14.1.linux-amd64.tar.gz

2、新增環境變數

cd ~

mkdir go

sudo vim .bashrc #新增以下內容

export goroot=/usr/local/go #定義goroot

export path=$path:$goroot/bin #新增go/bin到系統環境變數path中

export gopath=$home/go #新增gopath變數

三、golang命令

# 檢視golang版本

go version

go version go1.14 darwin/amd64

#檢視全部環境變數

go env

goroot=/usr/local/go

gopath=/users/kuncao/go

export path=$path:$goroot/bin:$gopath/bin

export path=$path:/users/kuncao/.pyenv/bin

eval "$(pyenv init -)"

eval "$(pyenv virtualenv-init -)"

kundembp:~ kuncao$ go version

go version go1.14 darwin/amd64

kundembp:~ kuncao$ go env

go111module=""

goarch="amd64"

gobin=""

gocache="/users/kuncao/library/caches/go-build"

goexe=""

goflags=""

gohostarch="amd64"

gohostos="darwin"

goinsecure=""

gonoproxy=""

gonosumdb=""

goos="darwin"

gopath="/users/kuncao/go"

goprivate=""

goproxy=""

goroot="/usr/local/go"

gosumdb="sum.golang.org"

gotmpdir=""

gotooldir="/usr/local/go/pkg/tool/darwin_amd64"

gccgo="gccgo"

ar="ar"

cc="clang"

cxx="clang++"

cgo_enabled="1"

gomod=""

cgo_cflags="-g -o2"

cgo_cppflags=""

cgo_cxxflags="-g -o2"

cgo_fflags="-g -o2"

cgo_ldflags="-g -o2"

pkg_config="pkg-config"

gogccflags="-fpic -m64 -pthread -fno-caret-diagnostics -qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/k5/fjnm1dj50ls1k0nj2j50vsvh0000gn/t/go-build666397507=/tmp/go-build -gno-record-gcc-switches -fno-common"

# 檢視goroot

go env goroot

/usr/local/go

# 檢視gopath

go env gopath

/users/kuncao/go

1 Golang執行緒安全(簡單例子)

var money int 0 func add pint int func addmoney time.sleep time.second 5 fmt.println money 預期結果是100000000,但是由於add方法是協程方式呼叫的,存在併發的情況,導致結果不符合預期。全域性變數 va...

golang開發筆記No 1

問題 下面這段 輸出 func main m make map int int for key,val range slice for k,v range m 結果 0 3 1 3 2 3 3 3參考解析 這是新手常會犯的錯誤寫法,for range 迴圈的時候會建立每個元素的副本,而不是元素的引用...

Golang學習筆記

如果乙個method的receiver是 t,你可以在乙個t型別的例項變數v上面呼叫這個method,而不需要 v去呼叫這個method 即不需要 v method 如果乙個method的receiver是t,你可以在乙個 t型別的變數p上呼叫這個method,而不需要 p去呼叫這個method。i...