Go_vscode遊びgolang
16170 ワード
title: Go_vscode玩转golang categories:Go tags:[go,vscode,コンパイル,デバッグ]date:2018-08-03 02:16:18 comments:false
Go_vscode遊びgolang
環境設定
vscode構成goとそのダウンロードに失敗した解決方法:https://blog.csdn.net/Yo_oYgo/article/details/79065966
GOPATH/src/GoLab(GOPATHはプロジェクトパス)など、すべてのテストコードをテストディレクトリの下に捨てるように構成します.
ワークスペース構成
"go.buildOnSave": "off", //
"go.lintOnSave": "off", // ,
"go.lintTool": "golint", // golint lint , gometalinter
"go.vetOnSave": "off",
"go.gocodeAutoBuild": true, //
"go.buildFlags": [],
"go.lintFlags": [],
"go.vetFlags": [],
"go.testFlags": ["-v"],
"go.formatTool": "goreturns",
"go.goroot": "D:/go",
"go.gopath": "${workspaceRoot}",
"go.autocompleteUnimportedPackages": true,
"go.gocodePackageLookupMode": "go",
"go.gotoSymbol.includeImports": true,
"go.useCodeSnippetsOnFunctionSuggest": true, //
"go.inferGopath": true,
"go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
"go.liveErrors": {
"enabled": true,
"delay": 0
},
vscodeリアルタイムエラーメッセージ
settings.jsonに構成を追加
"go.liveErrors": {
"enabled": true,
"delay": 500
}
そして初めてgotype-liveのインストールを提示します.インストールすればいいです.
ワークスペースを再開すると、ファイルを保存するたびにエラーが表示されます.
[外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンのメカニズムがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-MvLMUYcI-1570778498557)(http://p7kuppz6y.bkt.clouddn.com/QQスクリーンショット20180815104347.png)]
単一ファイルの実行
// package test_pkg
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
{
"version": "2.0.0",
"tasks": [
{
"label": "run",
"type": "shell",
"presentation": {
"echo": true,
"reveal": "always",
"focus": true,
"panel": "shared"
},
"command": "go",
"args": [
"run",
"${file}"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
}
]
}
goプログラムをデバッグする
GOPATH/src/GoLabの下にテストプログラムがあり、ディレクトリ構造は次のようになると仮定します.
[外部チェーン画像の転送に失敗しました.ソース局には盗難防止チェーンがある可能性があります.画像を保存して直接アップロードすることをお勧めします(img-NgDP 44 T 6-1570778498558)(http://p7kuppz6y.bkt.clouddn.com/QQスクリーンショット201808163031.png)]
// package test_pkg
package main
import (
pkg001 "GoLab/test_pkg/pkg001"
pkg002 "GoLab/test_pkg/pkg002"
"fmt"
)
func main() {
pkg001.SayHello()
pkg002.SayHello222()
d1 := &pkg002.Dog{"123", 21}
d2 := *d1
fmt.Println("d1:", d1)
fmt.Println("d2:", d2)
}
{
"version": "0.2.0",
"configurations": [
{
"name": "mytest",
"type": "go",
"request": "launch",
"mode": "debug",
"remotePath": "",
// "port": 10550,
// "host": "127.0.0.1",
"program": "${workspaceRoot}/src/GoLab/test_pkg/test_pkg.go", //
"env": {
"GOPATH":"${workspaceRoot}" // , GOPATH
},
"args": [],
"showLog": true
}
]
}
leafフレーム
GitHub : https://github.com/name5566/leaf
中国語ドキュメント:https://github.com/name5566/leaf/blob/master/TUTORIAL_ZH.md
mqantフレームワーク
GitHub : https://github.com/liangdas/mqant
中国語ドキュメント:https://github.com/liangdas/mqant/wiki/images/mqant_architecture.png
コミュニティ:http://www.mqant.com
使用
後記
上の2つのGitHub上のstartの比較的高いオープンソースプロジェクトを見て、簡単な除暴のフローチャートを使って記憶しやすいです