一蛔趴、收費的goland IDE
參考
Jetbrains 家族利器之 Gogland 簡明教程
Goland 調(diào)試 Go(有介紹如何Debug)
mac:Go安裝和配置+GoLand安裝和使用之完整教程
Jetbrains系列產(chǎn)品2019.2.3最新激活方法[持續(xù)更新]
在項目hello文件夾下罢杉,我新建了一個src文件夾,這是go的默認(rèn)用法。一般都將項目代碼放在src文件夾下。代碼中所有引用的第三方包路徑,前綴都默認(rèn)是"項目名/src/第三方包路徑”栽渴。 如main.go中引用第三方包:import “golang.org/x/net/websocket”
尖坤,那么該包必須位于“hello/src/”文件夾下,否則將找不到該依賴包而編譯出錯闲擦。
2.使用gofmt格式化代碼
在Goland中慢味,可以通過添加一個File Watcher來在文件發(fā)生變化的時候調(diào)用gofmt進(jìn)行代碼格式化,具體方法是墅冷,點擊Preferences -> Tools -> File Watchers纯路,點加號添加一個go fmt模版,Goland中預(yù)置的go fmt模版使用的是go fmt命令寞忿,將其替換為gofmt驰唬,然后在參數(shù)中增加-l -w -s參數(shù),啟用代碼簡化功能腔彰。添加配置后叫编,保存源碼時,goland就會執(zhí)行代碼格式化了霹抛。
3.WebStorm 關(guān)閉自動保存
goland和webstorm是一樣的設(shè)置
第一個是激活當(dāng)前窗口時保存搓逾,第二個是切換到其他窗口的時候(當(dāng)前窗口沒有被激活)保存,最后一個是重點杯拐,其實是關(guān)掉最后一個選項就好霞篡,那個叫安全寫入,方法就是重命名源文件端逼,只要能重命名成功就會覆蓋掉源文件來達(dá)到安全自動保存的目的朗兵,所以這個安全會不停的保存源文件。關(guān)掉這個選項就只會在很少的情況下自動保存顶滩。所有的四個選項全部關(guān)掉就只能手動保存矛市。
四個全關(guān)后,要把Mark modified打開诲祸,要不然不知道哪些是編輯過的文件浊吏。
4.protobuf插件
https://github.com/protostuff/protobuf-jetbrains-plugin
https://plugins.jetbrains.com/plugin/8277-protobuf-support
5.golint或revive
https://revive.run/docs
https://github.com/mgechev/revive
參考goland配置golint
使用go get -u github.com/mgechev/revive
安裝完成后,在bin目錄下能找到revive.exe
然后設(shè)置keymap快捷鍵時救氯,如果找不到External Tools里的revive找田,可以重啟一下goland就能找到了挑势。
6.添加自己的Project Path
如果使用go get安裝的第三方引用不到悉抵,可以在Goland的File菜單中讯榕,打開Settings,檢查Global GoPATH里是否有自己設(shè)置的gopath赡艰,比如我的就是[GoPATH] D:\go,這樣D:\go\src\github.com...里面所有的安裝包蒲跨,就能正常import了满着。
當(dāng)我們自己創(chuàng)建包時,也需要加入Project Path挫剑,比如mymath包里放個square.go
package mymath
func Square(x int) int {
x = 4
return x * x
}
這樣就可以正確引用自己的mymath包了去扣。
注:每個代碼文件都屬于一個包,而包名應(yīng)該與代碼文件所在的文件夾同名樊破。
7.設(shè)置按照 package 或 Directory編譯
建議先打開goland的Toolbar
1愉棱、golang go run undefined 同一個package中函數(shù)互相調(diào)用的問題
//a.go
package main
func main(){
Test()
}
//b.go
package main
import "fmt"
func Test(){
fmt.Println("Hello gopher!")
}
編譯的結(jié)果如下:
D:\goWork\src\test>go run a.go
# command-line-arguments
.\a.go:4:2: undefined: Test
正常來說同一個package下,函數(shù)是可以相互調(diào)用的哲戚,不應(yīng)該報錯奔滑, 出現(xiàn)這種問題的原因是沒有對這個package整體進(jìn)行編譯, 也就是說只編譯了部分
找到了問題顺少,針對進(jìn)行解決就可以了朋其, 只要找到可以整體編譯的方法就可以了,我試過可行的幾種如下:
(1)多個.go文件一起編譯運行
D:\goWork\src\test>go run a.go b.go
Hello gopher!
(2)直接運行這個package
D:\goWork\src\test>go run ./
Hello gopher!
(3)Run kind Directory
二脆炎、VS CODE
如果是管理員賬戶登錄的令宿,就不要下載User Installer版本,否則安裝時會彈出提示
需要去下載System版本的才可以
1.目前安裝的插件
- chinese
- go
- code runner
2.參考一招完美解決vscode安裝go插件失敗問題
新建一個Go工程腕窥,vscode會提示安裝各種插件粒没。這里因為某些原因,總是安裝失敗簇爆。
這里需要 使用go mod 代理來安裝
https://goproxy.io是一個國內(nèi)的代理癞松,命令行執(zhí)行
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
關(guān)閉vscode重新打開,再次點擊install all 即可
3.vscode go 調(diào)試 launch.json
{
// 使用 IntelliSense 了解相關(guān)屬性入蛆。
// 懸停以查看現(xiàn)有屬性的描述响蓉。
// 欲了解更多信息,請訪問: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "golang",
"type": "go",
"request": "launch",
"mode": "auto",
//當(dāng)運行單個文件時{workspaceFolder}可改為{file}
"program": "${file}",
"env": {},
"args": []
}
]
}
4.exported function ... should have comment or be unexported