vscode上搭建go开发环境

news/2024/7/16 7:56:54 标签: vscode, golang, ide

前言

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”

golangorgxtoolscmdguru__121">问题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.niftyadmin.cn/n/4999958.html

相关文章

【STM32】学习笔记-PWR(Power Control)电源控制

PWR(Power Control)电源控制 PWR(Power Control)电源控制是一种技术或设备,用于控制电源的开关和输出。它通常用于电源管理和节能,可以通过控制电源的工作状态来延长电子设备的使用寿命,减少能…

大数据组件-Flink环境搭建

🥇🥇【大数据学习记录篇】-持续更新中~🥇🥇 个人主页:beixi 本文章收录于专栏(点击传送):【大数据学习】 💓💓持续更新中,感谢各位前辈朋友们支持…

idea 无法识别maven的解决

问题描述 从git拉取代码或者修改文件夹以后,整个项目所有依赖爆红无法通过修改或者重新加载maven解决版本为idea 2021 问题定位 maven的版本太高,而idea的般本太低,导致识别的时候稳定性差 解决 使用idea原生的maven版本 选择已捆绑的m…

算法 学习杂谈

背景 算法应该是可以死记硬背的 想着要实现这种可能。毕竟天赋性选手很少,大多数人都是普通的。对于算法这块,因为日常业务代码写得太多,真正涉及到要使用到算法的时候较少(部分岗除外),探索一种适合大多数…

2023牛客暑期多校训练营7 CI「位运算」「根号分治+容斥」

C-Beautiful Sequence_2023牛客暑期多校训练营7 (nowcoder.com) 题意&#xff1a; 给定一个b序列&#xff0c;a序列满足 a [ i − 1 ] < a [ i ] a[i-1]<a[i] a[i−1]<a[i]且 a [ i ] ⊕ a [ i 1 ] b [ i ] a[i]\oplus a[i1]b[i] a[i]⊕a[i1]b[i]&#xff0c;求字…

C#设计打开文件

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System

WebSocket与SSE区别

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

leetcode283移动零

题目&#xff1a; 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 1: 输入: nums [0,1,0,3,12] 输出: [1,3,12,0,0]示例 2: 输入:…