使用 VSCode 开发 Golang 代码,并支持 debug断点调试

背景

Go 自2012年发布至今,由于其出色的性能与并发处理能力,已经被各大互联网公司应用到成熟的产品服务上,目前本人从事项目的后端服务已经从Python全部切换到Go。

于是决定跟后端大佬系统的学习一下Golang语言,然后将自己学习过程中遇到的问题和感悟记录下来,方便自己后续巩固学习和有需要的同学借鉴经验。

开发环境

1. 安装 Golang 环境

访问 golang 官网下载环境安装包:https://go.dev/dl/

Untitled.png

下载后根据指引下一步安装即可,最终安装完成后,打开命令行工具,输入 go version,看看能否正常输出go的版本号。

如果正常输入go 版本,说明go的运行环境已经安装成功。

Untitled.png

2. 安装 VSCode

VsCode 的安装就更加容易,直接在官网下载软件包按照指引安装即可。

https://code.visualstudio.com/

Untitled.png

3. 安装 Go 插件

VSCode 的插件功能中输入 go 关键字,然后找到下图中的插件,并安装。

Untitled.png

4. 安装 Go 插件依赖工具

快捷键 Ctrl + Shift + p 打开命令面板,输入go install tools,选择第一项 Go: install/Update Tools

Untitled.png

Untitled.png

5. 初始化 Go 项目

  1. go mod 初始化
go mod init levenx.com/mail
  1. 新建项目入口文件 main.go ,并输入下面代码
package main
import "fmt"
func main() {
    fmt.Println("你好,乐闻世界")
}

6. 运行 Go 代码

go run main.go

Untitled.png

Debug 断点调试

在程序运行的过程中,将运行程序停在具体的断点处,查询当前程序运行的状态。

  1. VSCode 创建 launch.json

Untitled.png

launch.json 文件内容

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Package",
            "type": "go",
            "request": "launch",
            "mode": "auto",
            "program": "${fileDirname}"
        }
    ]
}
  1. 运行go程序

Untitled.png

总结

VSCode 作为前端开发最喜欢的开发编辑器,同样能够支持所有的开发语言。使用熟悉的编程工具,会让我们更加容易上手新学的开发语言。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/236550.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

day3_qt

完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果账号和密码不匹配&#xf…

用户登录权限

文章目录 [TOC](文章目录) 前言一、鉴权二、 Cookie与session1.HTTP无状态2.cookie的重要属性3.cookie 和 session 的生命周期3.1 cookie 生命周期影响因素3.2 session 生命周期影响因素 4.cookie 和 session 的区别5.工作原理3 用户登录Node.js和Express验证session 三、JSON …

亿胜盈科ATR2037 无限射频前端低噪声放大器

亿胜盈科ATR2037 是一款应用于无线通信射频前端,工作频段为 0.7 到 6GHz 的超低噪声放大器。 ATR2037 低噪声放大器采用先进的 GaAs pHEMT 工艺设计和制作,ATR2037 低噪声放大器在整个工作频段内可以获得非常好的射频性能超低噪声系数。 亿胜盈科ATR203…

QML与C++之间自定义对象输出

1.定义暴露的C类 Message.h #ifndef MESSAGE_H #define MESSAGE_H#include "QObject" #include "MessageAuthor.h"class Message : public QObject {Q_OBJECTQ_PROPERTY(MessageAuthor* author READ author )public:explicit Message(QObject *parent nu…

多线程案例-阻塞队列

阻塞队列是什么 阻塞队列是一种特殊的队列.也遵循"先进先出"的原则 阻塞队列能是一种线程安全的数据结构,并且具有以下特性: 当队列满的时候,继续入队列就会阻塞,直到有其他线程从队列中取走元素. 当队列空的时候,继续出队列也会阻塞,直到有其他线程往队列中插入元素…

LinuxC中进程通信

LinuxC中进程通信 信号(Signals):Linux 提供了信号机制,允许一个进程向另一个进程发送信号以通知特定事件的发生。这是一种轻量级的通信机制,通常用于处理异步事件。您可以使用 kill 命令或 kill 函数来发送信号&…

day16_java多线程(入门了解)

多线程入门 一、线程和进程 进程 进程:是指一个内存中运行的应用程序,每个进程都有一个独立的内存空间和系统资源,一个应用程序可以同时运行多个进程;进程也是程序的一次执行过程,是系统运行程序的基本单位&#xff1…

从这三个方面,可以快速分析光伏系统设计方案的可行性!

随着光伏技术的不断发展,光伏项目也越来越受欢迎。光伏发电是利用半导体界面的光生伏特效应而将光能直接转变为电能的一种技术。如何分析光伏系统设计方案的可行性? 1.经济可行性分析 需要考虑光伏系统的投资成本,包括太阳能电池板、逆变器…

Qt/QML编程学习之心得:工程中的文件(十二)

Qt生成了工程之后,尤其在QtCreator产生对应的project项目之后,就如同VisualStudio一样,会产生相关的工程文件,那么这些工程文件都是做什么的呢?这里介绍一下。比如产生了一个Qt Widget application,当然如果Qt Quick Application工程会有所不同。 一、.pro和.pro.user …

Java学习总结

1. Java集合体系框架 java.util中包含 Java 最常用的the collections framework。 Java集合类主要由两个根接口Collection和Map派生出来的。 Collection 接口派生出了三个子接口List、Set、Queue。Map 接口 因此Java集合大致也可分成List、Set、Queue、Map四种接口体系。 …

数据库常用锁

锁是计算机在执行多线程或线程时用于并发访问同一共享资源时的同步机制,MySQL中的锁是在服务器层或者存储引擎层实现的,保证了数据访问的一致性与有效性。 MySQL锁可以按模式分类为:乐观锁与悲观锁。 按粒度分可以分为全局锁、表级锁、页级…

计算整数各位数字之和 C语言xdoj29

时间限制: 1 S 内存限制: 1000 Kb 问题描述: 假设n是一个由最多9位数字(d9, …, d1)组成的正整数。编写一个程序计算n的每一位数字之和 输入说明: 输入数据为一个正整数n 输出说明: 对整数n输出它的各位数字之和后换行 输入样例: …

Android渲染-AHardwareBuffer

本文主要从应用的角度介绍android的native层AHardwareBuffer创建纹理以及保存渲染数据。 HardwareBuffer 要介绍native层的AHardwareBuffer,就需要先从Java层的HardwareBuffer说起。Android官方对于HardwareBuffer介绍如下: HardwareBuffer wraps a na…

【lesson11】数据类型之string类型

文章目录 数据类型分类string类型set类型测试 enum类型测试 string类型的内容查找找所有女生(enum中)找爱好有游泳的人(set中)找到爱好中有足球和篮球的人 数据类型分类 string类型 set类型 说明: set:集…

uniCloud(一) 新建项目、初始化服务空间、云对象访问测试

一、新建一个带有unicloud 二、创建一个服务空间 1. 右键uniCloud,关联云服务空间 我当前没有服务空间,需要新建一个服务空间,之后将其关联。初始化服务空间需要的时间有点长 服务空间初始化成功后,刷新HBuilder,勾选…

GitHub 开源开发者日,沙龙见闻与洞察

前言 12月10日,我有幸受邀参加了 GitHub Universe 2023 Watch Party in Shanghai – 开源开发者日。 这次活动在上海微软 Reactor 线下举行,与数位 AI 及开源大咖汇聚现场,与开源爱好者们共同畅聊开源之旅。 活动介绍 整个线下大会中&#…

OpenCV-python numpy使用和基本作图

文章目录 一、实验目的二、实验内容三、实验过程Numpy1.NumPy 操作2.NumPy Ndarray 对象3.NumPy 基本类型4.NumPy 数组属性ndarray.ndimndarray.shapendarray.itemsizendarray.flags 5.NumPy 创建数组numpy.emptynumpy.zerosnumpy.ones 6.NumPy 从已有的数组创建数组numpy.asar…

openGauss学习笔记-152 openGauss 数据库运维-备份与恢复-物理备份与恢复之PITR恢复

文章目录 openGauss学习笔记-152 openGauss 数据库运维-备份与恢复-物理备份与恢复之PITR恢复152.1 背景信息152.2 前提条件152.3 PITR恢复流程152.4 recovery.conf文件配置**152.4.1 归档恢复配置****152.4.2 恢复目标设置** openGauss学习笔记-152 openGauss 数据库运维-备份…

微信小程序 长按录音+录制视频

<view class"bigCircle" bindtouchstart"start" bindtouchend"stop"><view class"smallCircle {{startVedio?onVedio:}}"><text>{{startVedio?正在录音:长按录音}}</text></view> </view> <…

如何使用Imagewheel本地搭建一个简单的的私人图床公网可访问?

文章目录 1.前言2. Imagewheel网站搭建2.1. Imagewheel下载和安装2.2. Imagewheel网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar临时数据隧道3.2.Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…