Win环境下,使用VS Code配置Go开发环境并编写menu项目

使用Golang编写menu项目,创建一个版本库,采用VSCode作为编译调试环境。记录从创建版本库、配置VSCode编译调试环境、编写menu第一版简单程序,以及最终调试运行,提供一个Go+VSCode的开发环境配置与工作流程的参考。

开发环境准备

Go安装

  1. 官网下载安装Windows版安装文件并安装

    image-20220321132727412

  2. image-20220321132854798

    在命令行中输入go version显示版本信息表示安装成功

VS Code环境准备

  1. 在插件中搜索Go并安装插件image-20220321133232007

创建GitHub版本库

  1. 创建新的repositoryimage-20220321133626119
  2. 将仓库克隆到本地文件夹image-20220321133939968

编写menu第一版程序

  1. 使用go mod init menu初始化目录image-20220321145321900

  2. 新建menu.go文件,编写代码,运行前VSCode会提示安装Go相关工具,直接install all就完事了嗷

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    package main

    import (
    "fmt"
    "os"
    )

    // dlv debug --headless --listen=:2345

    func main() {
    var cmdline string
    fmt.Println("WelCome to The Machine")
    fmt.Println("#*********# Go_MENU v0.1 #*********#")
    fmt.Println("help: User Manual || list: List Page")
    fmt.Println("setup: Setup Page || quit: QUIT")
    fmt.Println("And some hidden words")
    fmt.Println("####################################")
    for true {
    fmt.Println("\n#*********# Go_MENU v0.1 #*********#")
    fmt.Scan(&cmdline)

    switch cmdline {
    case "help":
    fmt.Println("How can I help you?")
    break
    case "list":
    fmt.Println("Hurry up to make your choise!")
    break
    case "setup":
    fmt.Println("Watch up where you going")
    break
    case "quit":
    fmt.Println("OK OK I'm done.")
    os.Exit(0)
    case "canyouhearme":
    fmt.Println("Hell yes")
    break
    case "nut":
    fmt.Println("I could be bounded in a nutshell and count myself a king of infinite space.")
    fmt.Println("https://github.com/phantomT/T-Shell")
    break
    default:
    fmt.Println("HAHA, VERY FUNNY, DO THAT AGAIN")
    }
    }
    }

  3. 由于调试控制台中无法直接获取输入,因此需要使用“远程调试”方法,使用dlv --headless模式监听端口,在终端中进行调试,建立VSCode调试配置launch.json注:默认创建的配置中,debugAdapter是不配置的,不配置时默认值为legacy,此时运行会报错而且无法进行调试。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    {
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
    {
    "name": "Connect to server",
    "type": "go",
    "request": "attach",
    "debugAdapter": "dlv-dap",
    "mode": "remote",
    "remotePath": "${workspaceFolder}",
    "port": 2345,
    "host": "127.0.0.1"
    }
    ]
    }

    并在调试前使用终端输入dlv debug --headless --listen=:2345,开启监听image-20220321182407475

  4. 运行程序image-20220321182425934

上传同步

  1. 使用git add . && git commit -m "build env demo" && git push上传文件至远程仓库image-20220321192107706
  2. 可以看到远程仓库已经更新了image-20220321193246955

作者:406