头图

在vscode中go编码发生的问题整理

引言

使用VsCode进行Go程序开发,我们肯定会碰到一些问题,这些问题有些是IDE的配置问题,有些是下载包的版本不一致问题,本文主要针对在开发过程中碰到的问题做一个简单的回顾和整理。

前期准备,必看

在进行问题纠错前,先确保自己正确下载了golang的官方工具集go-tool,如果不确定,就跟着我的步骤操作一遍,可能操作后,你的问题就解决了。

1、配置golang的源。

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

然后我们进行golang工具的默认工具服务下载:

2、Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框

image-20210317163139745

3、我们在这个输入框中输入>go:install,下面会自动搜索相关命令,我们选择Go:Install/Update Tools这个命令,按下图选中并会回车执行该命令

在弹出的窗口选中所有,并点击“确定”按钮,进行安装。

image-20210317084851704

等待安装完成,因为国内网络的特殊性,所以一定要谁知好go的代理源,不然总是下载失败。

执行这一步之后,重启Vscode,如果这个时候能够解决你的问题,那就不需要再往下看了。

具体问题解决方案

如果以上步骤不能解决你的问题,那就可以对应自己的问题来进行操作设置了。

一、VSCode中F12无法跳转

通用设置

点击左下角点击齿轮,选择设置界面(也可以直接快捷键CTRL+, 点击用户-扩展-go。进行如下设置

1、DocsTool修改成godoc

image-20210317090407649

2、Use Language Server 去掉勾选

image-20210317090415647

3、重启VsCode

go mod模式

如果进行上述操作后还是不行,并且你是使用的go mod 模式,那还有一种比较特殊的方式可以解决这个问题。

执行命令go mod vendor导入依赖,这一步会将依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下

此时F12就可以进行代码跳转了。

二、代码自动带出功能失效

这个问题一般都是因为 go mod模式的切换导致的。如果你的项目是使用的Gopath模式(如果有同学对Gopath和Gomod这俩种模式不了解的,可以看看我的文章如何看待go moudle并应用于工作),那么你需要设置

go env -w GO111MODULE=off

这时候自动带出功能就可能正确使用了

如果你使用的是go mod模式,设置

go env -w GO111MODULE=on

自动带出功能也可以恢复正常。

文章参考

go module 基本使用

vscode go 未找到任何定义

关于我

我的博客|文章首发

最后

本文到此结束,希望对你有帮助 😃

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

更多精彩技术文章汇总在我的 公众号【程序员工具集]】,持续更新,欢迎关注订阅收藏。

wechat.png

34 声望
2 粉丝
0 条评论
推荐阅读
我和思否的写作邂逅 | 思否9周年
大学期间我就开始参与项目组,进行一些简单的政府项目开发工作,那个时候是自学的编程,学习资料也不是很丰富,不像现在B站学习资料百花齐放。自学的内容主要包括数据库、前端、C#、运维等等,诚如有些人在小公司...

happlyfox3阅读 1.4k

SegmentFault 思否正式开源问答社区软件 Answer
作为国内领先的新一代技术问答社区,SegmentFault 思否团队在社区建设上有着多年积累。Answer 不仅拥有搭建问答平台(Q&A Platform)的基础功能,还在产品设计上融入了开发团队对社区发展的思考,并将其经验产品...

SegmentFault思否29阅读 4.2k评论 14

封面图
Golang 中 []byte 与 string 转换
string 类型和 []byte 类型是我们编程时最常使用到的数据结构。本文将探讨两者之间的转换方式,通过分析它们之间的内在联系来拨开迷雾。

机器铃砍菜刀21阅读 54.5k评论 1

年度最佳【golang】map详解
这篇文章主要讲 map 的赋值、删除、查询、扩容的具体执行过程,仍然是从底层的角度展开。结合源码,看完本文一定会彻底明白 map 底层原理。

去去100214阅读 10.9k评论 2

年度最佳【golang】GMP调度详解
Golang最大的特色可以说是协程(goroutine)了, 协程让本来很复杂的异步编程变得简单, 让程序员不再需要面对回调地狱, 虽然现在引入了协程的语言越来越多, 但go中的协程仍然是实现的是最彻底的. 这篇文章将通过分析...

去去100213阅读 11.1k评论 4

Go语言三十讲【目录】
第一章 Go语言快速入门  第一篇 基本语法  第二讲 数组与切片  第三讲 字符串  第四讲 哈希表MAP  第五讲 结构体与接口  第六讲 反射  ...

西红柿10阅读 2.8k评论 4

【已结束】SegmentFault 思否技术征文丨浅谈 Go 语言框架
亲爱的开发者们:我们的 11 月技术征文如期而来,这次主题围绕 「 Go 」 语言,欢迎大家来参与分享~征文时间11 月 4 日 - 11 月 27 日 23:5911 月 28 日 18:00 前发布中奖名单参与条件新老思否作者均可参加征文...

SegmentFault思否11阅读 4.6k评论 11

封面图
34 声望
2 粉丝
宣传栏