golang学习笔记——go语言安装及系统环境变量设置

文章目录

  • go语言安装
  • go env
  • go get
  • goproxy
  • 测试
  • 安装 Go 插件
  • 安装 Go 插件依赖工具
  • 参考资料
    • 用户环境变量和系统环境变量
      • 用户环境变量
      • 系统环境变量
      • 示例
      • 设置环境变量的步骤
        • 设置用户环境变量
        • 设置系统环境变量
      • 验证环境变量
      • 总结
    • 2024年最火的5大Go框架
        • 1. Gin:高并发接口的“秒回神器”
        • 2. Echo:金融大佬的“合规助手”
        • 3. Fiber:前端转Go的“逃课神器”
        • 4. GoFrame:传统企业IT的“救世主”
        • 5. Kratos:B站大佬的“屠龙刀”

go语言安装

下载go1.24.1.windows-amd64.msi

$ go version
go version go1.24.1 windows/amd64

配置三个环境变量:GOROOT、GOPATH、Path

  • 添加系统环境变量GOROOT

    变量名:GOROOT
    变量值:D:\golang
    
  • 修改用户环境变量GOPATH

    修改前
    C:\Users\username\go
    修改后
    D:\mygopath
    

    修改到非系统盘符,减少空间占用,系统盘大也可以不修改。

  • 修改系统环境变量Path

    D:\golang\bin
    

    采用msi安装方式,安装时软件已经自动添加。bin目录下有go.exe和gofmt.exe

go env

输入go env查看环境配置信息

go env 是 Go 语言提供的一个命令行工具,用于显示当前 Go 环境配置的详细信息。它可以帮助你了解当前 Go 环境的各种设置,包括但不限于 GOPATH、GOROOT、模块路径、编译器路径等相关环境变量和配置。

go get

cd D:\code

goproxy

Bash (Linux or macOS)

# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io,direct
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
export GOPRIVATE=git.mycompany.com,github.com/my/private

PowerShell (Windows)

# 配置 GOPROXY 环境变量
$env:GOPROXY = "https://goproxy.io,direct"
# 还可以设置不走 proxy 的私有仓库或组,多个用逗号相隔(可选)
$env:GOPRIVATE = "git.mycompany.com,github.com/my/private"

测试

mkdir hello
cd hello
go mod init hello
touch main.go

接下来, 将如下的代码写入 example.go 中:

package main

import "github.com/gin-gonic/gin"

func main() {
	r := gin.Default()
	r.GET("/ping", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "pong",
		})
	})
	r.Run() // 监听并在 0.0.0.0:8080 上启动服务
}

下载gin

go get -u github.com/gin-gonic/gin

运行项目

go run main.go

访问http://127.0.0.1:8080/ping

{"message":"pong"}

安装 Go 插件

VSCode 的插件功能中输入 go 关键字,然后找到下图中的插件,并安装。
在这里插入图片描述

安装 Go 插件依赖工具

快捷键 Ctrl + Shift + p 打开命令面板,输入go install tools,选择第一项 Go: install/Update Tools
在这里插入图片描述
在这里插入图片描述

参考资料

使用vscode调试wails项目(golang桌面GUI)
vscode远程免密ssh原理与实操方法
vscode远程开发没有代码提示

用户环境变量和系统环境变量

在 Windows 10 中,环境变量分为两种类型:用户环境变量和系统环境变量。这两种类型的环境变量在优先级上有一定的区别。具体来说,用户环境变量的优先级高于系统环境变量。这意味着,当同时设置了用户环境变量和系统环境变量时,系统会优先使用用户环境变量。

用户环境变量

  • 作用范围:仅对当前登录的用户有效。
  • 设置位置
    • 右键点击“此电脑”或“计算机” -> 属性 -> 高级系统设置 -> 环境变量 -> 用户变量
  • 优先级:较高,优先于系统环境变量。

系统环境变量

  • 作用范围:对所有用户和所有进程有效。
  • 设置位置
    • 右键点击“此电脑”或“计算机” -> 属性 -> 高级系统设置 -> 环境变量 -> 系统变量
  • 优先级:较低,当存在同名用户环境变量时,会被覆盖。

示例

假设你同时设置了用户变量和系统变量 PATH,内容如下:

  • 用户变量 PATH: C:\Users\YourUser\go\bin
  • 系统变量 PATH: C:\Program Files\Go\bin

在这种情况下,系统会优先使用用户变量 PATH,即 C:\Users\YourUser\go\bin

设置环境变量的步骤

设置用户环境变量
  1. 右键点击“此电脑”或“计算机” -> 属性 -> 高级系统设置 -> 环境变量。
  2. 在“用户变量”部分,点击“新建”按钮,添加新的用户变量。
  3. 输入变量名(如 GOPATH)和变量值(如 C:\Users\YourUser\go)。
  4. 点击“确定”保存设置。
设置系统环境变量
  1. 右键点击“此电脑”或“计算机” -> 属性 -> 高级系统设置 -> 环境变量。
  2. 在“系统变量”部分,点击“新建”按钮,添加新的系统变量。
  3. 输入变量名(如 GOPATH)和变量值(如 C:\Go)。
  4. 点击“确定”保存设置。

验证环境变量

你可以通过命令提示符或 PowerShell 来验证环境变量是否设置正确:

echo %GOPATH%

echo $env:GOPATH

总结

  • 用户环境变量优先级高于系统环境变量
  • 如果同时设置了同名的用户环境变量和系统环境变量,系统会优先使用用户环境变量。
  • 用户环境变量只对当前登录用户有效,而系统环境变量对所有用户和所有进程有效。

希望这些信息对你有帮助!如果有更多问题,欢迎继续提问。

2024年最火的5大Go框架

1. Gin:高并发接口的“秒回神器”

适用人群:追求极致性能的API狂人

  • 场景:社交平台消息推送、电商秒杀系统
  • 真实案例:某短视频App用Gin重构推送服务,单机扛住10万QPS,运维小哥终于不用半夜爬起来扩容了!
  • 坑点预警:功能太“素”,复杂业务得自己造轮子,新手慎入!
2. Echo:金融大佬的“合规助手”

适用人群:强迫症式代码洁癖患者

  • 场景:支付系统、风控平台
  • 真实案例:某银行用Echo搭跨境转账接口,参数校验错误率直降85%,再也不用背“锅”了!
  • 吐槽:中间件顺序写错?恭喜你喜提“玄学BUG”大礼包!
3. Fiber:前端转Go的“逃课神器”

适用人群:想逃离JavaScript“苦海”的全栈仔

  • 场景:快速验证产品原型、小团队全栈开发
  • 真实案例:3人小团队用Fiber+React两天撸出在线协作工具,投资人当场打款
  • 扎心真相:底层用了非标库,第三方插件兼容?自求多福吧!
4. GoFrame:传统企业IT的“救世主”

适用人群:受够Java臃肿架构的“转型难民”

  • 场景:ERP系统、政府政务平台
  • 真实案例:某车企用GoFrame重构供应链系统,开发效率提升40%,项目经理笑出法令纹!
  • 警告:用了它,你就和“简洁”二字彻底说再见了!
5. Kratos:B站大佬的“屠龙刀”

适用人群:立志挑战“双11级别”流量的狠人

  • 场景:亿级用户平台、分布式微服务
  • 真实案例:某直播平台用Kratos扛住顶流明星塌房事件,服务器稳如老狗,运维集体跪了!
  • 劝退指南:10人以下团队别碰!分分钟被DDD架构绕晕!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Composition API

为什么会产生 Composition API? Vue2 逻辑复用方式 缺点 Mixin (命名空间冲突、逻辑不清晰、不易复用)scoped slot 作用域插槽 (配置项多、代码分裂、性能差)Vue2 对 TS 支持不充分 Composition API 优点 逻辑代码更少, 更集中, 更易扩展更加丰富的 API 集成对 TS 来说,…

DeepSeek R1助力,腾讯AI代码助手解锁音乐创作新

目录 1. DeepSeekR1模型简介2. 歌词创作流程2.1 准备工作2.2 歌词生成技巧 3. 音乐制作环节3.1 主流AI音乐生成平台 4. 歌曲欣赏5. 总结展望 1. DeepSeekR1模型简介 腾讯AI代码助手最新推出的DeepSeekR1模型不仅在代码生成方面表现出色,其强大的自然语言处理能力也…

微信小程序接入deepseek

先上效果 话不多说&#xff0c;直接上代码&#xff08;本人用的hbuilder Xuniapp&#xff09; <template><view class"container"><!-- 聊天内容区域 --><scroll-view class"chat-list" scroll-y :scroll-top"scrollTop":…

angular+nodejs问卷调查系统

说明&#xff1a;我计划用angularmysqlnodejs&#xff0c;做一套问卷调查系统&#xff0c; 1.先设计数据库表&#xff0c; 2.然后添加模拟数据&#xff0c; 3.然后写几个查询方法 4.然后用nodejs写service服务&#xff0c;查询mysql数据 5.然后写contrller路由&#xff0c;指向…

Ubuntu20.04双系统安装及软件安装(五):VSCode

Ubuntu20.04双系统安装及软件安装&#xff08;五&#xff09;&#xff1a;VSCode 打开VScode官网&#xff0c;点击中间左侧的deb文件下载&#xff1a; 系统会弹出下载框&#xff0c;确定即可。 在文件夹的**“下载”目录**&#xff0c;可看到下载的安装包&#xff0c;在该目录下…

EasyDSS视频推拉流系统:清理缓存文件时如何确保缓存读写不受影响?

视频推拉流EasyDSS视频直播点播平台可提供一站式的视频转码、点播、直播、视频推拉流、播放H.265视频等服务&#xff0c;搭配RTMP高清摄像头使用&#xff0c;可将无人机设备的实时流推送到平台上&#xff0c;实现无人机视频推流直播、巡检等应用。 有用户咨询&#xff0c;视频推…

VS Code C++ 开发环境配置

VS Code 是当前非常流行的开发工具. 本文讲述如何配置 VS Code 作为 C开发环境. 本文将按照如下步骤来介绍如何配置 VS Code 作为 C开发环境. 安装编译器安装插件配置工作区 第一个步骤的具体操作会因为系统不同或者方案不同而有不同的选择. 环境要求 首先需要立即 VS Code…

GPIO的简介

目录 一、GPIO简介 二、GPIO基本结构 三、GPIO位结构 1、整体结构和内部各结构 2、输入部分 1.保护二极管 2.输入模式 3.浮空/上拉/下拉配置 ​编辑 4.模拟输入 5.施密特触发器 3、输出部分 1.输出部分前段 2.输出模式 3.开漏/推挽输出 4.复用开漏/推挽输出 四…

EasyDSS视频推拉流/直播点播平台:Mysql数据库接口报错502处理方法

视频推拉流/视频直播点播EasyDSS互联网直播平台支持一站式的上传、转码、直播、回放、嵌入、分享功能&#xff0c;具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务&#xff0c;全面满足超低延迟、超高画质、超大并发访…

AI工具:免费-文字转语音TTsmaker

前言&#xff1a; 测试了一款好用的文字转语音工具&#xff0c;简单&#xff0c;个人用免费功能就足够了。 说明&#xff1a; TTSMaker&#xff08;马克配音&#xff09;是一款免费的文本转语音工具&#xff0c;提供语音合成服务&#xff0c;支持多种语言&#xff0c;包括中…

vue3 vite 两种监听pinia状态变化的方式比较:watch, $subscribe

首先搭建vue3 vite 项目 npm create vue选择pinia 或者自己安装pinia 自己安装需要 npm install pinia并在main.js中挂在上&#xff1a; const pinia createPinia() const app createApp(App) app.use(pinia) app.mount(#app)创建stores文件夹和counter.js文件 counter.j…

【算法学习之路】5.贪心算法

贪心算法 前言一.什么是贪心算法二.例题1.合并果子2.跳跳&#xff01;3. 老鼠和奶酪 前言 我会将一些常用的算法以及对应的题单给写完&#xff0c;形成一套完整的算法体系&#xff0c;以及大量的各个难度的题目&#xff0c;目前算法也写了几篇&#xff0c;题单正在更新&#xf…

【ThreeJS Basics 1-6】Camera

文章目录 Camera 相机PerspectiveCamera 透视相机正交相机用鼠标控制相机大幅度转动&#xff08;可以看到后面&#xff09; 控制组件FlyControls 飞行组件控制FirstPersonControls 第一人称控制PointerLockControls 指针锁定控制OrbitControls 轨道控制TrackballControls 轨迹球…

Java+SpringBoot+Vue+数据可视化的百草园化妆服务平台(程序+论文+讲解+安装+调试+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 市场需求催生 在当今社会&#xff0c;化妆已经成为人们日常生活和各种重要场合中不可或…

React:Redux

Redux引入 Redux感觉像组件通信的中介 state存放被管理的状态 action是申请改哪些数据&#xff0c;传入什么参数 reducer是怎么修改数据 我的理解更像是action像一个储存方法的对象&#xff0c;reducer是具体的方法的实现&#xff0c;不同的方法实现也不一样 store是个仓库…

【AI实践】基于TensorFlow/Keras的CNN(卷积神经网络)简单实现:手写数字识别的工程实践

深度神经网络系列文章 【AI深度学习网络】卷积神经网络&#xff08;CNN&#xff09;入门指南&#xff1a;从生物启发的原理到现代架构演进【AI实践】基于TensorFlow/Keras的CNN&#xff08;卷积神经网络&#xff09;简单实现&#xff1a;手写数字识别的工程实践 引言 在深度…

学习threejs,使用LineBasicMaterial基础线材质

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.LineBasicMaterial1.…

【0010】Python流程控制结构-分支结构详解

如果你觉得我的文章写的不错&#xff0c;请关注我哟&#xff0c;请点赞、评论&#xff0c;收藏此文章&#xff0c;谢谢&#xff01; 本文内容体系结构如下&#xff1a; 分支结构是编程中的基本控制结构之一&#xff0c;它允许程序根据条件判断执行不同的代码路径。通过本文&…

python网络爬虫开发实战之基本库使用

目录 第二章 基本库的使用 2.1 urllib的使用 1 发送请求 2 处理异常 3 解析链接 4 分析Robots协议 2.2 requests的使用 1 准备工作 2 实例引入 3 GET请求 4 POST请求 5 响应 6 高级用法 2.3 正则表达式 1 实例引入 2 match 3 search 4 findall 5 sub 6 com…

pytest框架 核心知识的系统复习

1. pytest 介绍 是什么&#xff1a;Python 最流行的单元测试框架之一&#xff0c;支持复杂的功能测试和插件扩展。 优点&#xff1a; 语法简洁&#xff08;用 assert 替代 self.assertEqual&#xff09;。 自动发现测试用例。 丰富的插件生态&#xff08;如失败重试、并发执…