golang入門到項(xiàng)目實(shí)戰(zhàn) [2022最新Go語言教程,沒有廢話,純干貨!]
從事托管服務(wù)器,服務(wù)器租用,云主機(jī),虛擬空間,域名注冊,CDN,網(wǎng)絡(luò)代維等服務(wù)。
用vscode開發(fā)go的時(shí)候,安裝go包報(bào)錯(cuò):connectex: A connection attempt failed because the connected party did not
視頻一開始講go語言有什么特點(diǎn)之類的,完全不用管,剛開始學(xué)也記不了這些。
下載官網(wǎng)
安裝到自己喜歡的位置,接著設(shè)置環(huán)境變量:安裝的位置/bin
,我是在D:/Go/
到高級屬性設(shè)置
可以看到它自動(dòng)在我們的用戶變量弄了GOPATH
,這是以前放項(xiàng)目的地方,但是弄了模塊化后就沒必要了
找到系統(tǒng)變量的Path
點(diǎn)擊編輯,發(fā)現(xiàn)它也是自動(dòng)幫我們設(shè)置好了:
查看版本:
管理員模式打開Power Shell,設(shè)置go的環(huán)境變量(后面發(fā)現(xiàn)這里弄的環(huán)境對VScode沒影響):
輸入:
$env:GO111MODULE="on"
$env:GOPROXY="http://goproxy.cn"
這個(gè)是網(wǎng)站鏈接
https://git-scm.com/downloads
這個(gè)也是網(wǎng)站鏈接
https://code.visualstudio.com/download
自行安裝好后就配置環(huán)境:
選自己喜歡的位置,這個(gè)就是未來VScode的工作區(qū)了,而CMD 命令行運(yùn)行如下:
mkdir go
cd go
mkdir go_prod
go env -w GO111MODULE=on
go mod init go_prod
code ./go_prod
新建一個(gè)go后綴的文件,運(yùn)行以下程序
package main
import "fmt"
func main(){
fmt.Println("Hello World!")
}
結(jié)果如下:
go build 實(shí)際存在可運(yùn)行出結(jié)果的go文件
接著就生成一個(gè)exe后綴的文件,運(yùn)行它就行了
運(yùn)行命令:
./main.exe
go run 實(shí)際存在可運(yùn)行出結(jié)果的go文件
直接產(chǎn)生結(jié)果:
格式化的意思:把代碼排到令一般人覺得舒服并易于理解的位置。
如果只是對于單個(gè)文件的話,這個(gè)命令相較于自己在VScode安裝一個(gè)格式化的插件效果不太好,多個(gè)文件就好用了。
go fmt
舉例:我想下個(gè)mysql的包
到官網(wǎng)的搜索欄,選個(gè)mysql,拿到下載地址。
跑回VScode的終端欄,輸入命令如下:
go env -w GOSUMDB=off
go env -w GOPROXY=https://goproxy.cn,direct
go get github.com/go-sql-driver/mysql
安裝成功提示:
行注釋 Ctrl + /
塊注釋 shift + Alt + a
刪除行 Ctrl + shift + k
查找文件 Ctrl + e
打開設(shè)置命令行 Ctrl + shift + p
命令1:生成主函數(shù)
在代碼那欄輸入:
pkgm
命令2:生成輸出函數(shù)
fp
代碼自動(dòng)補(bǔ)全和選擇導(dǎo)入包
參考鏈接:vs code golang代碼自動(dòng)補(bǔ)全
由于VSCode的不停更新,很多配置的位置發(fā)生了變化,我操作也是云里霧里,可能我的步驟會有些多余,由于之前就已經(jīng)輸入了如下的命令:
go env -w GOPROXY=https://goproxy.cn,direct
所以我先是輸入“ctrl + shift + p”,再輸入go:install/update,點(diǎn)擊它
接著我就有如下這好幾個(gè)選項(xiàng),全部勾上,有的博客會說安十多個(gè),可能是因?yàn)榘姹静灰粯影?,之后是一定會安裝成功的,如果你跟著我之前的操作的話:
安裝好后,我就到這里面:
在選擇欄那里輸入 go,再隨便點(diǎn)擊任何一個(gè)setting.json
:
在上面的editor.quickSuggestions
加上:
"go.useCodeSnippetsOnFunctionSuggest": true
重啟VSCode,我們拿這個(gè)案例進(jìn)行測試:
你現(xiàn)在看到我這里會提示你沒導(dǎo)入fmt這個(gè)包
之后鼠標(biāo)移動(dòng)到fmt
,會有個(gè)????按鍵,點(diǎn)擊它,會有提示Add import “fmt”,這里點(diǎn)上,它就會自動(dòng)幫你補(bǔ)上:
命令3:輸出對應(yīng)變量
先定義變量,順便附上值:
s:="hello"
接著輸入
s.pr
VScode就會提示自動(dòng)補(bǔ)全最終如下:
其他的快捷命令
ff fmt.Printf("", var)
for for i := 0; i < count; i++ {}
forr for _, v := range v {}
fmain func main() {}
package user is not in GOROOT (D:\go\src\user)
要在D:\go\src
目錄下新建一個(gè)user
包,在包里定義函數(shù)
src/user/user.go
//定義包名
package user
//定義hello函數(shù)
func Hello() string{
return "Hello"
}
~/main.go
:調(diào)用包,放在隨意一個(gè)位置
package main
import ("fmt"
"user")
func main(){
s:=user.Hello()
fmt.Printf("s: %v\n",s)
}
go mod init 任意名
我心態(tài)都炸了,原來調(diào)用根目錄文件夾下自定義包是要這樣寫的。
Go初學(xué)者坑記之 go mod init 和自定義包的使用
我的go文件存放目錄
在VScode的終端輸入如下
自己main.go文件修改成如下形式:
package main
import ("fmt"
"paturnax/user")
func main(){
s:=user.Hello()
fmt.Printf("s: %v\n",s)
}
最終效果: