昨天講到我在環境中執行Hello World的時候有出現以下錯誤
gopls was not able to find modules in your workspace.
When outside of GOPATH, gopls needs to know which modules you are working on.
You can fix this by opening your workspace to a folder inside a Go module, or
by using a go.work file to specify multiple modules.
See the documentation for more information on setting up your workspace:
https://github.com/golang/tools/blob/master/gopls/doc/workspace.md.go
今天就來講一下為什麼會出現這個錯誤,如何debug和執行第一個golang程式
這是問題由於在安裝go這個vscode套件時,他會自動幫忙安裝一個叫做gopls的套件,這個字拆開來就是
go(Golang)+ pls(Language Server Protocol)
詳細PLS是什麼這邊就不多解釋了,gopls的功用大概就是可以自動完成語法,跳轉到function的實作或是出現文檔等等方便開發的工具
上面提到的這個問題主要是說gopls不知道我的workspace在哪裏,而golang這個語言在找workspace的時候是用go.mod這個檔案來找的,所以現在先來創建一個go.mod檔案
go mod init [your_module_name]
在我的測試專案中,專案名稱叫做golang101,在terminal中輸入go mod init golang101
下完這個指令後,會出現以下訊息
go: creating new go.mod: module golang101
go: to add module requirements and sums:
go mod tidy
如果專案中有import其他的套件,使用go mod tidy
golang會自動把套件都下載好,但這邊只有hello world所以先不用使用這個指令。
裝好go.mod後就可以下go run main.go
這個指令了,這樣就會順利的在專案中看到hello world!
.
├── go.mod
└── main.go
明天會開始看一些NotionAPI相關的內容,並且寫成筆記供大家參考~
這邊提供一些golang的學習資源,網路上的學習資源蠻多的這邊就不多贅述
golang官方學習資源
Get Started - The Go Programming Language
golang web application教學
Introduction
golang的基礎語法
Go - Basic Syntax