当前位置: 首页 > news >正文

vscode上搭建go开发环境

前言

Go语言介绍:

    Go语言适合用于开发各种类型的应用程序,包括网络应用、分布式系统、云计算、大数据处理等。由于Go语言具有高效的并发处理能力和内置的网络库,它特别适合构建高并发、高性能的服务器端应用。以下是一些常见的Go语言应用开发领域:
网络应用开发:Go语言的轻量级线程(goroutine)和通道(channel)机制使得开发网络应用变得更加简单和高效,例如Web服务、API开发和微服务架构。
分布式系统开发:Go语言的并发模型和内置的RPC支持使得开发分布式系统变得更加容易,例如分布式数据库、消息队列、集群管理系统等。
云计算和容器技术:Go语言在云计算和容器技术领域有广泛应用,例如Kubernetes、Docker等。
    大数据处理:Go语言的高并发和高性能特性使其适合用于大数据处理,例如流式处理、数据分析等。
    总之,Go语言适合用于构建高性能和高并发的应用程序,特别适合用于服务器端开发和分布式系统。它的简洁语法和强大的标准库使得开发效率也得到了提高。

VSCode介绍:

    VS Code是一款免费的开源代码编辑器,由Microsoft开发和维护。它可以在Windows、macOS和Linux等操作系统上运行,并支持多种编程语言和扩展。你可以免费下载和使用VS Code,没有任何费用。

    Visual Studio Code 默认支持非常多的编程语言,包括 JavaScript、TypeScript、Vue、CSS 和 HTML;也可以通过下载扩展支持 Python、C/C++、Java 和 Go 在内的其他语言。支持功能包括语法高亮、括号补全、代码折叠和代码片段;对于部分语言,可以使用 IntelliSense。Visual Studio Code 也支持调试 Node.js 程序。

一.安装VsCode与Go插件

Vscode下载地址:https://code.visualstudio.com/download
也可通过360软件管家直接下载

Go安装包下载:
https://golang.google.cn/dl/

在VsCode上安装Go插件:
安装好Go和VsCode后,在vscode上搜索go,安装go插件。
在这里插入图片描述

二.使用github下载安装go的其他插件

2.1 环境变量:

GoPath环境变量:用于设置Go语言的工作空间目录。(请注意,Go 1.11版本及更高版本引入了Go模块(Go Modules)的概念,可以在任何目录下工作,而不需要依赖于GoPath环境变量)

GOROOT环境变量:用来指定Go语言的安装目录。它应该指向你安装Go语言的根目录。

2.2 创建目录:

在环境变量设置的目录下创建src、bin、pkg,在src目录下创建golang.org/x

在这里插入图片描述
在这里插入图片描述
进入C:\Users\FF\go\src\golang.org\x下,依次执行以下命令:
git clone https://github.com/golang/lint.git lint
git clone https://github.com/golang/tools.git tools
git clone https://github.com/golang/mod.git
git clone https://github.com/golang/xerrors.git

(注意:C:\Users\FF\go\src\golang.org\x下应该是空目录,如果有存在与git下载重名目录,可能会导致下载失败)

命令都执行成功后,可以看到C:\Users\FF\go\src\golang.org\x下目录有以下子目录:
在这里插入图片描述
cd切换到src目录:C:\Users\FF\go\src下,再依次执行以下三条命令进行安装:
go install golang.org/x/lint/golint
go install golang.org/x/tools/cmd/gorename
go install golang.org/x/tools/cmd/guru

接下来按照github.com中的插件:
gocode(要更改名字),命令如下:
go get -u -v github.com/stamblerre/gocode
cd …/bin
ren gocode.exe gocode-gomod.exe

在这里插入图片描述
go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/uudashr/gopkgs/cmd/gopkgs
go get -u -v github.com/ramya-rao-a/go-outline
go get -u -v github.com/acroca/go-symbols
go get -u -v github.com/josharian/impl

go get -u -v github.com/derekparker/delve/cmd/dlv

切换到C:\Users\FF\go\src\github.com,执行:
git clone https://github.com/go-delve/delve.git go-delve/delve
切换到C:\Users\FF\go\src,执行安装命令:
go install github.com/go-delve/delve/cmd/dlv

go get -u -v github.com/haya14busa/goplay/cmd/goplay

切换到C:\Users\FF\go\src\github.com,执行:
git clone https://github.com/haya14busa/goplay haya14busa/goplay
git clone https://github.com/skratchdot/open-golang.git skratchdot/open-golang
切换到C:\Users\FF\go\src,执行安装命令:
go install github.com/haya14busa/goplay/cmd/goplay

go get -u -v github.com/sqs/goreturns

切换到C:\Users\FF\go\src\github.com,执行:
git clone https://github.com/sqs/goreturns.git sqs/goreturns
切换到C:\Users\FF\go\src,执行安装命令:
go install github.com/sqs/goreturns

go get -u -v github.com/cweill/gotests/…
go get -u -v github.com/fatih/gomodifytags
go get -u -v github.com/davidrjenni/reftools/cmd/fillstruct
go get -u -v github.com/godoctor/godoctor

切换到C:\Users\FF\go\src\github.com,执行:
git clone https://github.com/godoctor/godoctor.git godoctor/godoctor
切换到C:\Users\FF\go\src,执行安装命令:
go install github.com/godoctor/godoctor

都执行成功后,在bin目录下会生成以下exe文件(17个):
在这里插入图片描述
在这里插入图片描述

三.安装问题处理

问题1:git clone出现openssl问题

在这里插入图片描述
问题处理:
解除ssl验证:
git config --global http.sslVerify false

问题2:go install失败

在这里插入图片描述
问题处理:
go env:
在这里插入图片描述
它的值可以为on、off、空,当为on或空时,会开启模块支持,将会忽略GOPATH配置,所以解决方法就是将其改为off,输入如下命令:
go env -w GO111MODULE=“off”

问题3:go install golang.org/x/tools/cmd/guru 失败

在这里插入图片描述
问题处理:git clone https://github.com/golang/sys.git

在这里插入图片描述

四.使用VSCode创建go项目

1)创建go项目文件夹
2)创建main.go文件
3)vscode打开go项目文件夹,打开main.go文件,编辑代码
4)使用以下命令初始化模块,并下载相关依赖

go mod init (module-name):
go mod init命令用于初始化当前目录为一个Go模块。它会创建一个go.mod文件,用于记录项目的依赖关系和版本信息。

go mod tidy
#下载依赖。我们需要将依赖下载至本地,而不是使用 go get

go mod download
#导入依赖。此命令会将刚才下载至 GOPATH 下的依赖转移至该项目根目录下的 vendor(自动新建) 文件夹下, 此时我们就可以使用这些依赖了

go mod vendor
// 复制依赖到 vendor 目录下

使用go build、go run等命令来构建和运行你的项目了。

VSCode中运行go程序:
在这里插入图片描述

相关文章:

vscode上搭建go开发环境

前言 Go语言介绍: Go语言适合用于开发各种类型的应用程序,包括网络应用、分布式系统、云计算、大数据处理等。由于Go语言具有高效的并发处理能力和内置的网络库,它特别适合构建高并发、高性能的服务器端应用。以下是一些常见的Go语言应用开发…...

10.(Python数模)(预测模型二)LSTM回归网络(1→1)

LSTM回归网络(1→1) 长短期记忆网络 - 通常只称为“LSTM” - 是一种特殊的RNN,能够学习长期的规律。 它们是由Hochreiter&Schmidhuber(1997)首先提出的,并且在后来的工作中被许多人精炼和推广。…...

mac常见问题(五) Mac 无法开机

在mac的使用过程中难免会碰到这样或者那样的问题,本期为您带来Mac 无法开机怎么进行操作。 1、按下 Mac 上的电源按钮。每台 Mac 电脑都有一个电源按钮,通常标有电源符号 。然后检查有没有通电迹象,例如: 发声,例如由风…...

WebSocket与SSE区别

一,websocket WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议) 它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 websocket的原理 …...

Qt鼠标点击事件处理:显示鼠标点击位置(完整示例)

Qt 入门实战教程(目录) 前驱文章: Qt Creator 创建 Qt 默认窗口程序(推荐) 什么是事件 事件是对各种应用程序需要知道的由应用程序内部或者外部产生的事情或者动作的通称。 事件(event)驱动…...

OpenCV:实现图像的负片

负片 负片是摄影中会经常接触到的一个词语,在最早的胶卷照片冲印中是指经曝光和显影加工后得到的影像。负片操作在很多图像处理软件中也叫反色,其明暗与原图像相反,其色彩则为原图像的补色。例如,颜色值A与颜色值B互为补色&#…...

HZOJ#237. 递归实现排列型枚举

题目描述 ​ 从 1−n这 n个整数排成一排并打乱次序,按字典序输出所有可能的选择方案。 输入 ​ 输入一个整数 n。(1≤n≤8) 输出 ​ 每行一组方案,每组方案中两个数之间用空格分隔。 ​ 注意每行最后一个数后没有空格。 样例…...

C++ PIMPL 编程技巧

C PIMPL 编程技巧 文章目录 C PIMPL 编程技巧什么是pimpl?pimpl优点举例实现 什么是pimpl? Pimpl (Pointer to Implementation) 是一种常见的 C 设计模式,用于隐藏类的实现细节,从而减少编译依赖和提高编译速度。它的基本思想是将…...

一个通用的EXCEL生成下载方法

Excel是一个Java开发中必须会用到的东西,之前博主也发过一篇关于使用Excel的文章,但是最近工作中,发现了一个更好的使用方法,所以,就对之前的博客进行总结,然后就有了这篇新的,万能通用的方法说…...

介绍 TensorFlow 的基本概念和使用场景。

TensorFlow(简称TF)是由Google开发的开源机器学习框架,它具有强大的数值计算和深度学习功能,广泛用于构建、训练和部署机器学习模型。以下是TensorFlow的基本概念和使用场景: 基本概念: 张量(T…...

【力扣】304. 二维区域和检索 - 矩阵不可变 <二维前缀和>

目录 【力扣】304. 二维区域和检索 - 矩阵不可变二维前缀和理论初始化计算面积 题解 【力扣】304. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, …...

线上问诊:数仓开发(三)

系列文章目录 线上问诊:业务数据采集 线上问诊:数仓数据同步 线上问诊:数仓开发(一) 线上问诊:数仓开发(二) 线上问诊:数仓开发(三) 文章目录 系列文章目录前言一、ADS1.交易主题1.交易综合统计2.各医院交易统计3.各性…...

微信小程序 通过响应式数据控制元素class属性

我想大家照这个和我最初的目的一样 希望有和vue中v-bind:class一样方便的指令 但答案不太尽人意 这里 我们只能采用 三元运算符的形式 参考代码如下 <view class"item {{ userId item.userId ? isThisUser : }}"> </view>这里 我们判断 如果当前ite…...

linux并发服务器 —— linux网络编程(七)

网络结构模式 C/S结构 - 客户机/服务器&#xff1b;采用两层结构&#xff0c;服务器负责数据的管理&#xff0c;客户机负责完成与用户的交互&#xff1b;C/S结构中&#xff0c;服务器 - 后台服务&#xff0c;客户机 - 前台功能&#xff1b; 优点 1. 充分发挥客户端PC处理能力…...

Java后端开发面试题——企业场景篇

单点登录这块怎么实现的 单点登录的英文名叫做&#xff1a;Single Sign On&#xff08;简称SSO&#xff09;,只需要登录一次&#xff0c;就可以访问所有信任的应用系统 JWT解决单点登录 用户访问其他系统&#xff0c;会在网关判断token是否有效 如果token无效则会返回401&am…...

TiDB x 安能物流丨打造一栈式物流数据平台

作者&#xff1a;李家林 安能物流数据库团队负责人 本文以安能物流作为案例&#xff0c;探讨了在数字化转型中&#xff0c;企业如何利用 TiDB 分布式数据库来应对复杂的业务需求和挑战。 安能物流作为中国领先的综合型物流集团&#xff0c;需要应对大规模的业务流程&#xff…...

负载均衡算法实现

负载均衡算法实现 负载均衡介绍 负责均衡主要有以下五种方法实现: 1、轮询法 将请求按顺序轮流地分配到后端服务器上&#xff0c;它均衡地对待后端的每一台服务器&#xff0c;而不关心服务器实际的连接数和当前的系统负载&#xff1b; 2、随机法 通过系统的随机算法&#…...

Flutter 完美的验证码输入框 转载

刚开始看到这个功能的时候一定觉得so easy&#xff0c;开始的时候我也是这么觉得的&#xff0c;这还不简单&#xff0c;然而真正写的时候才发现并没有想象的那么简单。 先上图&#xff0c;不上图你们都不想看&#xff0c;我难啊&#xff0c;到Github&#xff1a; https://gith…...

SpringBoot整合Jpa实现增删改查功能(提供Gitee源码)

前言&#xff1a;在日常开发中&#xff0c;总是撰写一些简单的SQL会非常耗时间&#xff0c;Jpa可以完美的帮我们提高开发的效率&#xff0c;对于常规的SQL不需要我们自己撰写&#xff0c;相对于MyBatis有着更简单易用的功能&#xff0c;但是MyBatis自由度相对于Jpa会更高一些&a…...

微服务[Nacos]

CAP 1&#xff09;一致性(Consistency) (所有节点在同一时间具有相同的数据) 2&#xff09;可用性(Availability)(保证每个请求不管成功或者失败都有响应) 3&#xff09;分区容错(Partition tolerance)(系统中任意信息的丢失或失败不会影响系统的继续运作) 一、虚拟机镜像准备 …...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

Redis:现代应用开发的高效内存数据存储利器

一、Redis的起源与发展 Redis最初由意大利程序员Salvatore Sanfilippo在2009年开发&#xff0c;其初衷是为了满足他自己的一个项目需求&#xff0c;即需要一个高性能的键值存储系统来解决传统数据库在高并发场景下的性能瓶颈。随着项目的开源&#xff0c;Redis凭借其简单易用、…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈&#xff0c;并不断增加特征维度持续测试」的做法&#xff0c;体现了一种逐步建模与迭代验证的实验思路&#xff0c;在金融欺诈检测中非常有价值&#xff0c;本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...