Visual Studio Code中实现Go语言自动导包教程

一、在VS Code中安装Go需要的扩展

首先,按住Ctrl + Shift + P调出命令面板,输入

Go:Install/Update Tools 
在这里插入图片描述


在这里插入图片描述


全选安装,等待安装完毕
显示这行输出,就代表安装成功了

在这里插入图片描述

tips:如果你出现了下面的报错

2026-01-08 15:25:29.074 [info] dlv: failed to install dlv(github.com/go-delve/delve/cmd/dlv@latest): Error: Command failed: A:\Go\bin\go.exe install -v github.com/go-delve/delve/cmd/dlv@latest
go: downloading github.com/go-delve/delve v1.26.0
go: github.com/go-delve/[email protected] requires go >= 1.24; switching to go1.24.11
go: downloading go1.24.11 (windows/amd64)
go: download go1.24.11: golang.org/[email protected]: verifying module: checksum database disabled by GOSUMDB=off

2026-01-08 15:25:29.074 [info] gopls: failed to install gopls(golang.org/x/tools/gopls@latest): Error: Command failed: A:\Go\bin\go.exe install -v golang.org/x/tools/gopls@latest
go: downloading golang.org/x/tools v0.40.0
go: golang.org/x/tools/[email protected] requires go >= 1.25; switching to go1.25.5
go: downloading go1.25.5 (windows/amd64)
go: download go1.25.5: golang.org/[email protected]: verifying module: checksum database disabled by GOSUMDB=off

解决步骤
1.设置 Go 代理

go env -w GOPROXY=https://goproxy.cn,direct 

2.开启校验和数据库(关键)
你的报错明确写着 checksum database disabled by GOSUMDB=off。
这意味着你之前(或者某些安装教程)强制关闭了安全校验。开启它才能下载官方工具。
运行以下命令重置为默认(或开启):

go env -w GOSUMDB=sum.golang.org 

如果这条之后仍然连不上,可以换成国内镜像:

go env -w GOSUMDB=sum.golang.google.cn 

3.检查系统时间(重要)
如果你现在的电脑时间有误,请改回正确的时间。

4.重新安装工具
完成上述设置后,再次尝试安装 VSCode 提示的工具。

你可以选择在 VSCode 终端手动运行,也可以点 VSCode 的 Install All。

手动安装命令

go install -v github.com/go-delve/delve/cmd/dlv@latest go install -v golang.org/x/tools/gopls@latest 

使用下面命令,正常输出版本号就表示能运行

go run golang.org/x/tools/gopls@latest version 
在这里插入图片描述

二、导入go依赖包

将鼠标悬浮到你想导入包的代码上

在这里插入图片描述


选择go get package github.com/gin-gonic/gin

在这里插入图片描述


等待导包完成,就可以实现vscode中的自动导包了

tips
以下是几条命令解释:
GOROOT:通常是你安装 Go 软件的目录,比如 D:\Go。
GOPATH:是你的“工作空间”目录,通常在 C:\Users\你的用户名\go。

GOPATH 的“开发模式”已经废弃
Go 官方 Wiki 明确说:GOPATH development mode(把代码放在 GOPATH/src 下面开发)已经废弃,Go 1.16 以后默认就是模块模式,以后 GOPATH mode 会完全移除

GOPATH 现在主要用途只剩 3 件事

在使用 Go 模块(你现在的 backend 目录有 go.mod)的情况下,GOPATH 变量的作用主要是https://go.dev/wiki/GOPATH:
go install 安装命令行工具(比如 gopls、dlv)到
$GOPATH/bin(如果没单独设置 GOBIN)
go get 缓存模块到
$GOPATH/pkg/mod
校验和数据库缓存
$GOPATH/pkg/sumdb

建议保留唯一的D:\GoProjects\library 作为唯一的 GOPATH
终端直接修改命令:

go env -w GOPATH="D:\GoProjects\library" 

使用下面命令查看当前GOPATH

go env GOPATH 

如果出现以下报错:

go: golang.org/x/tools/[email protected] requires go >= 1.25; switching to go1.25.5

有两种方案解决
方案一:升级 Go 版本(推荐)
1、下载最新的 Go 版本
访问 https://go.dev/dl/
下载 Windows 版本的 Go 1.23 或更高版本

2、安装新版本
运行安装程序
重启 VSCode

3、验证安装
使用以下命令验证go版本

go version 

4、重新安装 gopls

go install -v golang.org/x/tools/gopls@latest 

方案二:降级 gopls 版本(如果不便升级 Go)
如果暂时无法升级 Go 版本,可以使用与 Go 1.22.3 兼容的 gopls 版本:
1、安装兼容的 gopls 版本

go install -v golang.org/x/tools/[email protected] 

不确定版本是否匹配,只是举个例子

2、验证安装

结论:经过验证目前最新版本Go 1.25.5 + gopls 0.21.0是匹配的

本文作者能力有限,如有不足之处还望在评论区指出,开发者们可以一起进步。

Read more

【C++】踏上C++学习之旅(八):深入“类和对象“世界,掌握编程的黄金法则(三)(内含运算符重载和拷贝构造函数)

【C++】踏上C++学习之旅(八):深入“类和对象“世界,掌握编程的黄金法则(三)(内含运算符重载和拷贝构造函数)

文章目录 * 前言 * 1. 拷贝构造函数 * 1.1 为什么需要拷贝构造函数? * 1.2 拷贝构造函数的"概念"(内含语法) * 1.3 拷贝构造函数的"特性" * 2. 赋值运算符重载 * 2.1 运算符重载 * 2.2 赋值运算符重载 * 2.3 前置++和后置++重载 前言 在之前的文章中,相信大家已经对"类"这个面向对象的语法以及一些基本的用法已经掌握了,那么在本文中将会带着大家继续解读,"类和对象"世界别致的风景——“拷贝构造函数"和"赋值运算符重载”

By Ne0inhk
《 C++ 点滴漫谈: 二十七 》告别低效!C++ 输入输出操作你真的会用吗?

《 C++ 点滴漫谈: 二十七 》告别低效!C++ 输入输出操作你真的会用吗?

摘要 C++ 的输入输出系统是程序开发中的重要组成部分,涵盖数据交互、文件操作、格式化输出等多方面内容。本篇博客全面解析了 C++ 输入输出的基础知识,包括标准输入输出流的操作方法、文件输入输出的灵活应用、格式化工具的精确控制,以及异常处理与错误管理的关键技术。此外,我们深入探讨了高级输入输出技巧,如多线程日志记录、自定义流缓冲区等,并通过实际案例总结了最佳实践和常见问题的解决方法。这篇博客不仅适合初学者理解 C++ 输入输出的核心概念,也为经验开发者提供了优化性能和提升代码质量的实用指南。通过本博客,读者将全面掌握 C++ 输入输出的各个方面,构建稳健、高效的程序。 1、引言 在计算机编程中,输入与输出(Input/Output, I/O) 是程序与外界交互的桥梁,是几乎所有程序中不可或缺的一部分。从用户输入数据到程序处理,再到将结果输出给用户,这一过程在任何应用场景中都起着关键作用。在 C++ 中,输入输出不仅仅是数据的传递,更是体现语言强大功能和灵活性的关键领域之一。 与 C 语言中传统的 printf

By Ne0inhk
C++——stack与queue

C++——stack与queue

目录 引言 容器适配器 一、什么是容器适配器 二、底层容器的选择 标准库中的stack 一、stack的基本概念 二、stack的常用接口 三、stack的模拟实现 标准库中的queue 一、queue的基本概念 二、queue的常用接口 三、queue的模拟实现 标准库中的priority_queue 一、priority_queue的基本概念 二、priority_queue的常用接口 三、priority_queue的使用 结束语 引言 在之前的博客中,我们学习了栈(Stack)与队列(Queue)并尝试使用C语言实现其功能,同时我们在C++的学习中对STL中的string vector等容器也进行了学习,接下来我们来学习C++中的栈和队列。 可以先看看这两篇文章,更有助于我们学习: 数据结构——顺序栈和链式栈 数据结构—

By Ne0inhk