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)]

単一ファイルの実行

  • テストファイルtest_pkg.goの必須パッケージ名はmainであり、mainメソッド
    // package test_pkg
    package main
    
    import (
    	"fmt"
    )
    
    func main() {
    	fmt.Println("hello world")
    }
    
  • がある.
  • vscodeはタスク(.vscod/tasks.json)を書き、goコマンドrunの現在のファイルを呼び出し、迅速な実行を便利にし、ショートカットキーctrl+shift+b
    {
        "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)]
  • テストが必要なエントリファイルがtest_であると仮定pkg.go. 必須パッケージ名はmainであり、mainメソッド
    // 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)
    }
    
  • がある
  • vscodeデバッグ構成(.vscod/launch.json)
    {
        "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
            }
        ]
    }
    
  • ショートカットキーf 5デバッガ[外部チェーンピクチャの転送に失敗しました.ソース局は盗難防止チェーンメカニズムがある可能性があります.ピクチャを保存して直接アップロードすることをお勧めします(img-0 cCy 1 Vqg-157078498559)(http://p7kuppz6y.bkt.clouddn.com/QQスクリーンショット201808163654.png)]

  • 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

    使用

  • 分散配置:http://www.mqant.com/topic/5987e8ebd42579452e188b62

  • 後記
    上の2つのGitHub上のstartの比較的高いオープンソースプロジェクトを見て、簡単な除暴のフローチャートを使って記憶しやすいです
  • mqantは分布式フレームワークを好むが、プロセスもleaf単一プロセス配置フレームワークよりやや複雑である[外鎖ピクチャの転送に失敗した場合、ソース局には盗難防止チェーンメカニズムがある可能性があり、ピクチャを保存して直接アップロードすることを提案する(img-xFflfpW 2-1570778498559)(http://p7kuppz6y.bkt.clouddn.com/QQスクリーンショット201808163534.png)]
  • leaf[外部チェーン画像の転送に失敗し、ソース局に盗難防止チェーン機構がある可能性があり、画像を保存して直接アップロードすることを提案する(img-FPjpzgjp-157078498560)(http://p7kuppz6y.bkt.clouddn.com/QQスクリーンショット201808163534.png)]