在Windows上配置VS Code GO语言开发环境

news2024/9/22 7:28:54

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,持续学习,不断总结,共同进步,为了踏实,做好当下事儿~
  • 专栏导航
    • Python面试合集系列:Python面试题合集,剑指大厂
    • GO基础学习笔记系列:记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列:总结好用的命令,高效开发
    • 算法与数据结构系列:总结数据结构和算法,不同类型针对性训练,提升编程思维

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

💖The Start💖点点关注,收藏不迷路💖

📒文章目录

  • 1、为什么选择VS Code?
  • 2、下载与安装
  • 3、配置GO编译器环境变量
  • 4、安装GO项目开发插件
  • 5、运行GO项目
    • 5.1、创建并打开一个GO项目
    • 5.2、安装 Code Runner 插件
      • 5.2.1、支持多种编程语言
      • 5.2.2、简单易用
      • 5.2.3、自定义运行配置
      • 5.2.4、支持终端和输出面板
    • 5.3、运行GO项目
  • 6、配置GOPROXY
  • 7、开启Module模式
  • 8、总结


1、为什么选择VS Code?

Go语言采用UTF-8编码,因此从理论上来说,任何文本编辑器都可以用于Go语言的开发。然而,VS Code 凭借其轻量级、功能丰富、跨平台的特性,以及由谷歌官方推出的、并由VS Code团队成员维护的Go语言插件所提供的强大支持和保障,使其成为开发Go项目的绝佳选择之一。此外,VS Code还拥有良好的社区支持,这些都为开发者提供了更好的开发体验。

2、下载与安装

官网下载地址:https://code.visualstudio.com/Download
三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。
在这里插入图片描述
下载好的安装文件,双击安装即可。

3、配置GO编译器环境变量

检查是否已经配置了环境变量

go version

如果已经配置过环境变量则如下图所示:
在这里插入图片描述
如果未配置环境变量继续以下步骤:搜索环境变量
----------

  • 打开系统环境变量编辑面板
  • 点击环境变量按钮
  • 编辑系统环境变量中的 Path 内容,追加GO编译器安装位置 GO编译器安装目录\bin
  • 再次检查能否查询到GO编译器板本,go version

4、安装GO项目开发插件

在这里插入图片描述
该插件提供了丰富的特性,包括代码着色、自动完成、代码片段、快速信息提示、跳转到定义、查找引用、文件大纲、工作区符号搜索、重命名、保存时构建、代码格式化、添加引用以及调试等功能。

5、运行GO项目

5.1、创建并打开一个GO项目

项目位置: D:\stormsha\etab\GoBasic

File-> Open Folder... 打开刚刚创建的GO项目
在这里插入图片描述
文件夹下只有 hello.go 一个文件

package main

import "fmt"

func main() {
	fmt.Println("Hello World !")
}

5.2、安装 Code Runner 插件

Code Runner 是一款适用于 Visual Studio Code(VS Code)的插件,它允许你在编辑器中直接运行多种编程语言的代码片段或文件。该插件的主要特点包括:

5.2.1、支持多种编程语言

Code Runner 支持广泛的编程语言,包括但不限于:C/C++、Java、Python、JavaScript、PHP、Go、Rust 等等,基本所有熟知的编程语言都能运行。

5.2.2、简单易用

Code Runner 提供了一个简单的界面,只需点击编辑器右上角的运行按钮或使用快捷键(默认为 Ctrl+Alt+N)即可运行代码。

5.2.3、自定义运行配置

你可以根据自己的需求自定义运行配置,例如指定运行参数、工作目录、环境变量等。

5.2.4、支持终端和输出面板

Code Runner 可以在终端中运行代码,也可以将运行结果显示在输出面板中。

安装 Code Runner 插件
安装完成后,VS Code 视口就会出现如下运行图标:
在这里插入图片描述

5.3、运行GO项目

使用 Ctrl + Alt + N ,或者点击 Run Code 按钮就可以执行该 go 文件。
在这里插入图片描述

6、配置GOPROXY

Goproxy是一个Go语言的模块代理工具,它的作用是作为Go Module的代理服务器,帮助开发者管理和下载Go语言项目的依赖模块。

可选的代理有如下:

  • https://goproxy.io
  • https://goproxy.cn
  • https://mirrors.aliyun.com/goproxy
go env -w GOPROXY=https://goproxy.cn,direct

注意:direct是必要的

7、开启Module模式

Go Module是Go语言官方引入的依赖管理工具,它的主要作用包括:

依赖管理:Go Module可以帮助开发者管理项目的依赖关系。通过在项目中创建一个go.mod文件,Go Module能够记录项目所依赖的外部包及其版本信息。这样,开发者可以明确指定项目所需的依赖版本,避免因依赖版本不匹配而导致的问题。

版本控制:Go Module支持语义化版本控制(Semantic Versioning),开发者可以通过版本号来指定所需的依赖版本。这有助于确保项目的稳定性和可维护性,因为开发者可以明确知道项目使用了哪些版本的依赖。

灵活的项目布局:使用Go Module,项目不再需要位于传统的GOPATH目录结构下。开发者可以将项目放在任意位置,只要项目根目录中包含go.mod文件即可。这为开发者提供了更大的灵活性,使得项目管理更加方便。

自动下载依赖:当使用Go Module时,开发者只需在代码中导入所需的包,Go工具链会自动下载并安装这些包。这简化了依赖管理的过程,开发者无需手动下载和管理依赖。

支持私有仓库:Go Module还支持从私有仓库中获取依赖。开发者可以通过配置代理或认证信息来访问私有仓库中的依赖包。

可替换依赖:在某些情况下,开发者可能需要替换项目中的某个依赖包。Go Module提供了替换依赖的功能,开发者可以在go.mod文件中指定要替换的依赖及其替换版本。

可验证的依赖图:Go Module会生成一个go.sum文件,记录项目中所有依赖包的哈希值。这样,开发者可以验证项目中的依赖是否被篡改,确保项目的安全性。

总之,Go Module的出现使得Go语言的依赖管理更加规范和便捷,为开发者提供了更好的开发体验。

  • 查看:go env GO111MODULE
  • 开启:go env -w GO111MODULE=on
  • 初始化:go mod init GoBasic
    在这里插入图片描述
    初始化完成后项目根目录下会出现 go.mod 文件
    在这里插入图片描述

8、总结

通过以上步骤,你就成功配置了Go开发环境,可以在VSCode中进行Go开发了。


觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏、分享下吧,非常感谢!👍 👍 👍

🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

上岸必看:C++ 24校招/25实习求职指南

校招和实习是应届生步入职场的重要途径,是职业生涯的起点。 通过实习和校招进入的岗位,C应届生能够更好地了解行业现状,明确自己的职业兴趣和发展方向。有的时候,实际工作中的体验甚至会引导你重新考虑和规划自己的职业道路。 并…

Mac下载的软件显示文件已损坏,如何解决文件已损坏问题

当在Mac上下载的软件显示文件已损坏时,这可能是因为多种原因导致的,包括网络问题、下载中断、软件未完整下载、文件传输错误等。解决这个问题需要采取一些步骤来排除可能的原因,并尝试修复文件。下面将详细介绍一些常见的解决方法&#xff1a…

算法课程笔记——排序

Bool返回真假 为何用const不用define 1.保护被修饰的东西 2.通常不分配存储空间, 效率高 匿名函数只在一处用,其他处用不到 不写&就是拷贝 u相等就u,不等就v 一个字符是空格一个是换行,后面是取下标i那就是1(true&…

利用vite创建vue项目

创建vue项目步骤 打开HBuilder X工具,创建空白项目 进入终端(鼠标点击文件进行选择,然后终端) 利用vite脚手架创建项目 (前提要将HBuilder X工具属性设为管理员运行状态(属性》兼容》管理员身份运行此程序) npm …

CentOS如何使用Docker部署Plik服务并实现公网访问本地设备上传下载文件

文章目录 1. Docker部署Plik2. 本地访问Plik3. Linux安装Cpolar4. 配置Plik公网地址5. 远程访问Plik6. 固定Plik公网地址7. 固定地址访问Plik 本文介绍如何使用Linux docker方式快速安装Plik并且结合Cpolar内网穿透工具实现远程访问,实现随时随地在任意设备上传或者…

pnpm 使用 workspace 报错 ERR_INVALID_THIS

有时候真的感觉如果有一个老师指路,那么遇到的坑真的会少很多。 错误示例: GET https://registry.npmjs.org/rollup%2Fplugin-typescript error (ERR_INVALID_THIS). Will retry in 10 seconds. 2 retries left.原因是什么?原因就是 pnpm 的…

MySQL表空间管理与优化(8/16)

表空间管理和优化 innodb_file_per_table参数(此参数在分区表章节中还会出现): 这个参数决定了InnoDB表数据的存储方式。当参数设置为ON时,每个InnoDB表的数据会单独存储在一个以.ibd为后缀的文件中,这有利于管理和回收…

python数据结构与算法之线性表

1、线性表 是一种由n个元素(n> 0 )数据元素组成的有限序列,所包含的元素数量通常被称为表的长度 n 0 的表被称为空表,线性表的数据元素可以单一也可以复杂,可以是整数,字符串,也可以是由几…

活动预告|NineData 创始人CEO叶正盛将参加QCon全球软件开发大会,共话AI大模型技术在数据库DevOps的实践

4月13日下午,NineData创始人&CEO叶正盛即将参加InfoQ中国主办的『QCon全球软件开发大会北京站』的技术大会。在本次技术峰会上,叶正盛将以《AI大模型技术在数据库DevOps的实践》为主题,深入剖析AI大模型技术在数据库DevOps领域的最新进展…

Zookeeper的集群搭建和ZAB协议详解

Zookeeper的集群搭建 1)zk集群中的角色 Zookeeper集群中的节点有三个角色: Leader:处理集群的所有事务请求,集群中只有一个LeaderFollwoer:只能处理读请求,参与Leader选举Observer:只能处理读…

软考数据库---3.关系数据库

3.1 名词 属性分类 数据库实体属性分类主要包括以下几个方面: 标识属性 (Key Attribute / Identifier): 这些属性是用来唯一识别实体实例的关键属性,也称为主键(Primary Key)。在数据库表中,每个实体的实例&#xff0…

【GD32】GP2Y1014AU粉尘传感器

2.42 GP2Y1014AU粉尘传感器 2.42.1 模块来源 采购链接: GP2Y1014AU粉尘传感器模块 PM2.5灰尘传感器代替GP2Y1010AU0F 2.42.2 规格参数 工作电压:5-7V 消耗电流:最大20mA 最小粒子检出值:0.8微米 灵敏度:0.5V(0.1mg…

锁策略总结

锁策略 悲观锁和乐观锁 乐观锁和悲观锁不是具体类型的锁而是指两种不同的对待加锁的态度,这两个锁面对锁冲突的态度是相反的。 乐观锁:认为不存在很多的并发操作,因此不需要加锁。悲观锁:认为存在很多并发操作,因此需…

c++编程(4)——类与对象(2)构造函数、析构函数

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 构造函数默认构造函数析构函数默认析构函数 构造函数 以一个日期类为例。 class Data { private:int _year;int _month;int _day; };这个类实例化出来的对象内的值都是编译器默认初始化的随机值。 Data d1…

私域流量变现干货:轻松盘活,高效增长!

你知道如何增长私域流量并将这些流量转化为实际收益,让我们的品牌价值最大化吗? 今天,就分享几点干货,帮助大家盘活私域流量,实现高效增长! 1、精准定位和用户画像 首先,了解您的私域流量源于…

位像素谈海外仓库存管理方法:WMS对效率提升到底有没有用?

对海外仓来说,最重要的事情就是把库存管理做清楚。因为海外仓的本质还是仓储,如果连仓储数据都出现错误,那不管是对客户还是对终端消费者来说,都会造成巨大的影响。 今天我们就来聊一下,在电商飞速发展的今天&#xf…

面试官:说一说CyclicBarrier的妙用!我:这个没用过...

写在开头 面试官:同学,AQS的原理知道吗? 我:学过一点,抽象队列同步器,Java中很多同步工具都是基于它的… 面试官:好的,那其中CyclicBarrier学过吗?讲一讲它的妙用吧 我&…

Sonar下启动发生错误,elasticsearch启动错误

Download | SonarQube | Sonar (sonarsource.com) 1.首先我的sonar版本为 10.4.1 ,java版本为17 2.sonar启动需要数据库,我先安装了mysql, 但是目前sonar从7.9开始不支持mysql,且java版本要最少11,推荐使用java17 3.安装postsql,创建sonar数据库 4.启…

什么是5G单兵?5G单兵跟5G执法记录仪有什么异同?

深入了解5G单兵系统:未来执法新革命与执法记录仪的差异分析 随着技术的不断进步和发展,5G技术的应用已经渗透到社会的各个领域中,包括公安、消防等执法与紧急救援领域。其中,5G单兵系统作为一种新型的智能化执法装备,…

树形侧边栏(展开、全选、切换名称)

父文件&#xff1a; index.vue <template><div class"h-full p20px bg-#f5f5f5"><ContentWrap class"w-260px h-[calc(100vh-200px)] min-h-700px"><TenantTree select"tentantSelect" /></ContentWrap></div&…