vscode上搭建go开发环境

news2024/11/17 23:56:44

前言

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程序:
在这里插入图片描述

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

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

相关文章

静态路由配置出错记录

根据实验手册,配置静态路由,但是怎么也排除不了错误。 最后发现,是自己的默认网关配置错误了。但是使用模拟器抓包看到的,也没有提示网关信息啊。

docker desktop如何一键进入容器内部

对着对应的容器 点击 view files

电压互感器倍频感应耐压试验注意事项

注意事项 被试 PT 在三倍频耐压时呈容性, 对于 110kV、 220kV 互感器进行感应耐压试验时,应在开口 a D x D 端子间励磁, 可在 PT 二次绕组 ax 上接补偿电感, 对于 35kV 电压互感器励磁电压一般加至二次 a—x 间;三倍频…

测开之 Python 自动化全栈工程师 + 性能专项

功能测试基础 接口测试基础 接口的通信原理与本质 cookie、session、token 详解 接口测试的意义与测试方法 接口测试用例的设计 app 测试 app 流程测试 app 兼容性测试 app 稳定性测试 app 性能专项测试 app 抓包 UI 功能测试基础 常见功能测试方法:等价类&…

JVM | 垃圾回收器(GC)- Java内存管理的守护者

引言 在编程世界中,有效的内存管理是至关重要的。这不仅确保了应用程序的稳定运行,还可以大大提高性能和响应速度。作为世界上最受欢迎的编程语言之一,通过Java虚拟机内部的垃圾回收器组件来自动管理内存,是成为之一的其中一项必…

极米RS Pro 3投影参数是多少?极米投影仪RS Pro 3好用吗?

近年来,随着投影技术的快速发展,越来越多的用户开始选择投影产品来打造家庭影院,为生活带来新的观影体验。但要想打造一个家庭影院,选到一台合适的投影仪却并不是一件容易的事,因为家庭影院对画面的亮度、色彩和观影舒…

(18)线程的实例认识:线程的控制,暂停,继续,停止,线程相互控制,协作

一、老方式 1、这是一个老的实现方式,基本不推荐,背后控制的原理需要了解。 界面:三个button一个textbox 代码: private volatile bool isPause false;//fprivate void BtnStart_Click(object…

力扣|两数相加

先放题目: 给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c…

敏捷开发方法:快速响应需求变化的开发流程

在快速变化的技术和市场环境下,传统的软件开发方法可能显得笨重和不灵活。敏捷开发方法应运而生,以其快速响应需求变化、持续交付和团队协作的特点,成为现代软件开发的重要方法之一。本文将深入探讨敏捷开发方法的概念、原则、流程以及在实际…

《王道24数据结构》课后应用题——第三章 栈和队列

第三章 【3.1】 03、 假设以I和O分别表示入栈和出操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,可以操作的序列称为合法序列,否则称为非法序列。 如IOIIOIOO 和IIIOOIOO是合法的,而IOOIOIIO和II…

maven基础学习

什么是maven 构建 依赖 maven核心概念坐标 在黑窗口使用maven命令生成maven工程 pom.xml 想导入哪个jar包把它的坐标放到dependency里就可以 maven核心概念POM maven核心概念约定的目录结构 执行maven的构建命令 清理操作,clean 编译操作 compile 测试操作 test 打包…

ElasticSearch进阶

一、 search检索文档 ES支持两种基本方式检索; 通过REST request uri 发送搜索参数 (uri 检索参数);通过REST request body 来发送它们(uri请求体); 1、信息检索 API: https://w…

Mybatis的关联关系配置一对一,一对多,多对多的映射关系

目录 关联关系映射 一对一关联: 一对多关联: 多对多关联: 导入数据库表 一对多 一对一 多对多 关联关系映射 关联关系映射在Mybatis中主要通过三种方式实现:一对一关联和一对多关联及多对多关联。 一对一关联:…

算法 数据结构 双向环形链表 手撸环形链表 环形链表实现容器 环形链表添加修改删除获取大小 环形链表实现自定义容器 手撸容器 双向环形哨兵链表 算法(六)

1. 环形链表: 2. 建议先不要看我写得自己先实现下,只将Node内部类复制自己命名得容器内, 实现方法: a. add方法(添加到头部,尾部添加,指定位置添加) b. get方法(获取首部…

OpenCV(二十):图像卷积

1.图像卷积原理 图像卷积是一种在图像上应用卷积核的操作。卷积核是一个小的窗口矩阵,它通过在图像上滑动并与图像的像素进行逐元素相乘,然后求和来计算新图像中每个像素的值。通过滑动卷积核并在图像上进行逐像素运算,可以实现一系列图像处理…

Laravel 模型的关联查询 Debugbar 调试器 模型的预加载 ⑩②

作者 : SYFStrive 博客首页 : HomePage 📜: THINK PHP 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &#x1f44…

2023高教社杯数学建模A题B题C题D题E题思路模型 国赛建模思路分享

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

Re45:读论文 GPT-1 Improving Language Understanding by Generative Pre-Training

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名:Improving Language Understanding by Generative Pre-Training 论文下载地址:https://www.mikecaptain.com/resources/pdf/GPT-1.pdf 本文是2018年OpenAI的工作&#xff0c…

智慧班牌全套源代码 智慧班牌人脸识别云平台源码

智慧校园云平台电子班牌系统源码,系统架构:Javavue2springbootMySQL elmentuiQuartzjpajwt 智慧校园建设在近年来已经形成主流,不少地区等级的学校都在不同程度地进行校园信息化建设优化,比如把人脸识别门禁应用到校门口、宿舍门口…

网站edge -- 油猴 -> IDM

一、百度网盘限速 未解决 软件:IDM 安装路径: 1.1如果:edge 出问题打不开其他网站, 解决方法: 以管理员的身份,右击载这个软件,就好了 1.2使用这个软件 应该是右击这个软件 以管理员的身…