50周学习go语言:第1周 环境搭建
以下是为零基础学习者准备的详细第1周教程,包含环境搭建、工具配置和首个Go程序的完整操作指南:
一、Go语言环境安装(Windows/macOS/Linux通用)
1. 下载安装包
- 官网地址:https://go.dev/dl//
- 根据系统选择对应版本:
- Windows:下载
.msi文件(如go1.21.0.windows-amd64.msi) - macOS:下载
.pkg文件(如go1.21.0.darwin-amd64.pkg) - Linux:下载
.tar.gz文件(如go1.21.0.linux-amd64.tar.gz)
- Windows:下载
2. 安装步骤
Windows/macOS:
- 双击安装包按默认设置完成安装
- 安装路径保持默认:
- Windows:
C:\Go - macOS:
/usr/local/go
- Windows:
Linux:
# 解压到指定目录
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz# 配置环境变量(将以下内容添加到 ~/.bashrc 或 ~/.zshrc)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin# 使配置生效
source ~/.bashrc
3. 验证安装
打开终端/命令行工具,输入:
go version
成功显示版本号(如 go version go1.21.0 darwin/amd64)即表示安装成功
二、VSCode配置Go开发环境
1. 安装VSCode
- 官网下载:https://code.visualstudio.com/
- 按默认设置完成安装
2. 安装Go扩展
- 打开VSCode
- 点击左侧活动栏的「扩展」图标(或按
Ctrl+Shift+X) - 搜索框输入
Go - 找到由 Go Team at Google 发布的官方插件,点击「Install」
3. 安装开发工具包
- 新建任意
.go文件(如hello.go) - VSCode右下角会自动弹出提示安装工具包
- 点击「Install All」安装以下工具:
- gopls(语言服务器)
- dlv(调试器)
- staticcheck(静态分析工具)
如遇网络问题,可先设置国内代理:
go env -w GOPROXY=https://goproxy.cn,direct
三、第一个Go程序:Hello Go!
1. 创建项目目录
mkdir hello-go
cd hello-go
2. 初始化Go模块
go mod init example.com/hello
该命令会生成 go.mod 文件,记录项目依赖信息
3. 编写代码
新建 main.go 文件,输入以下内容:
package main // 声明主包import "fmt" // 导入格式化包func main() {fmt.Println("Hello Go!") // 输出语句
}
4. 运行程序
go run main.go
终端将显示 Hello Go!
四、理解go mod机制(关键概念)
1. 模块是什么?
- 包含一组相关Go包的集合
- 通过
go.mod文件管理依赖版本 - 替代旧的GOPATH模式
2. 常用命令
| 命令 | 作用 |
|---|---|
go mod init | 初始化新模块 |
go mod tidy | 自动添加/移除依赖 |
go get | 添加新依赖 |
3. 实践操作
- 在项目中添加第三方库:
go get github.com/gin-gonic/gin
- 观察
go.mod文件变化 - 查看依赖关系图:
go mod graph
五、常见问题解决方案
-
VSCode插件安装失败:
- 检查网络连接
- 手动安装工具:
go install golang.org/x/tools/gopls@latest
-
go: command not found:
- 检查环境变量配置
- 重新打开终端使配置生效
-
代码自动补全不生效:
- 确认已安装所有推荐工具
- 重启VSCode
本周学习成果检查:
- 能正确执行
go version - 在VSCode中成功运行Hello World程序
- 理解
go.mod文件的作用 - 能够解释
package main和func main()的含义
完成这些基础准备后,你已经搭建好了专业的Go开发环境,可以开始后续的语法学习啦!
相关文章:
50周学习go语言:第1周 环境搭建
以下是为零基础学习者准备的详细第1周教程,包含环境搭建、工具配置和首个Go程序的完整操作指南: 一、Go语言环境安装(Windows/macOS/Linux通用) 1. 下载安装包 官网地址:https://go.dev/dl//根据系统选择对应版本&am…...
4. MySQL 逻辑架构说明
4. MySQL 逻辑架构说明 文章目录 4. MySQL 逻辑架构说明1. 逻辑架构剖析1.1 服务器处理客户端请求1.2 Connectors(连接器)1.3 第1层:连接层1.4 第2层:服务层1.5 第3层:引擎层1.6 存储层 2. SQL执行流程2.1 MySQL 中的 SQL 执行流程 2.2 MySQL…...
《AI与NLP:开启元宇宙社交互动新纪元》
在科技飞速发展的当下,元宇宙正从概念逐步走向现实,成为人们关注的焦点。而在元宇宙诸多令人瞩目的特性中,社交互动体验是其核心魅力之一。人工智能(AI)与自然语言处理(NLP)技术的迅猛发展&…...
面对STM32的庞大体系,如何避免迷失在细节中?
我第一次接触STM32时,我以为抱着开发板就是拥抱未来,实际上一开机就喜提四大耳光,看到卖家演示的MP3播放、TFT彩屏、网口通信好炫酷,忍不住买回来掌握这些神技,到最后发现最实用的还是开发板的关机键和复位键。 看视频…...
ragflow-RAPTOR到底是什么?请通俗的解释!
RAPTOR有两种不同的含义,具体取决于上下文: RAPTOR作为一种信息检索技术 RAPTOR是一种基于树状结构的信息检索系统,全称为“Recursive Abstractive Processing for Tree-Organized Retrieval”(递归抽象处理树组织检索)…...
Linux系统移植之Uboot启动流程
Linux系统移植之Uboot启动流程 一,Uboot启动流程1.Uboot的两阶段1.1.第一阶段1.11.硬件初始化1.12.复制 U-Boot 到 RAM1.13.跳转到第二阶段 1.2.第二阶段1.21.C 语言环境初始化1.22. 硬件设备初始化1.23. 加载环境变量1.24. 显示启动信息1.25. 等待用户输入…...
【Open X-Embodiment】简单数据下载与预处理
文章目录 1. RLDS Dataset2. 处理成numpy格式3. 存储桶 1. RLDS Dataset 从 Octo 里面找到数据下载的代码 rlds_dataset_mod github 按照官网代码配置环境后,修改 prepare_open_x.sh,相当于只用 gsutil 下载数据: DOWNLOAD_DIR/mnt/data…...
【第四节】C++设计模式(创建型模式)-Builder(建造者)模式
目录 引言 一、Builder 模式概述 二、Builder 模式举例 三、Builder 模式的结构 四、Builder 模式的实现 五、Builder 模式的优缺点 六、总结 引言 Builder 模式是一种创建型设计模式,旨在将复杂对象的构建过程与其表示分离。通过一步步构建对象,…...
排查JVM的一些命令
查看JVM相关信息的方法 环境: Win10, jdk17 查看端口的Pid netstat -ano | findstr <端口号>列出当前运行的JVM进程 ## 用于输出JVM中运行的进程状态信息。通过jps,可以快速获取Java进程的PID(进程标识符), …...
uni-app(位置1)
文章目录 一、获取当前的地理位置、速度 uni.getLocation(OBJECT)二、打开地图选择位置 uni.chooseLocation(OBJECT)三、使用应用内置地图查看位置。uni.openLocation(OBJECT) 一、获取当前的地理位置、速度 uni.getLocation(OBJECT) App平台 manifest中配置好自己的地图厂商k…...
某手sig3-ios算法 Chomper黑盒调用
Chomper-iOS界的Unidbg 最近在学习中发现一个Chomper框架,Chomper 是一个模拟执行iOS可执行文件的框架,类似于安卓端大名鼎鼎的Unidbg。 这篇文章使用Chomper模拟执行某手的sig3算法,初步熟悉该框架。这里只熟悉模拟执行步骤以及一些常见的…...
登录-05.JWT令牌-介绍
一.JWT令牌 JWT令牌是一种简洁的、自包含的格式,用于在通讯双方之间以json数据格式安全的传输数据。说白了,JWT令牌就是将json格式的数据进行封装,从而实现安全传输。 所谓简洁,就是指JWT令牌就是一个简单的字符串。 所谓自包含…...
Mac下Python版本管理,适用于pyenv不起作用的情况
前言 声明:之前也在网上看到过可以使用pyenv来管理python版本,但由于作者的python安装路径实在是繁杂不堪,因此安装完成pyenv体验下来没有任何用处,但偶然发现vscode似乎可以看到各个python版本,因此写下这篇博客记录…...
Ubuntu 服务器Llama Factory 搭建DeepSeek-R1微调训练环境
1.首先了解一下什么是LLM微调 LLM 微调指的是在已经预训练好的大型语言模型基础上,使用特定的任务数据或领域数据,通过进一步的训练来调整模型的参数,使其在特定任务或领域上能够表现得更好。简单来说,就是对一个已经具备了丰富语…...
【redis】redis内存管理,过期策略与淘汰策略
一:Redis 的过期删除策略及处理流程如下: 1. 过期删除策略 Redis 通过以下两种策略删除过期键: 1.1 惰性删除 触发时机:当客户端访问某个键时,Redis 会检查该键是否过期。执行流程: 客户端请求访问键。…...
RabbitMQ学习—day6—死信队列与延迟队列
目录 死信队列 1. 死信的概念 2. 死信的来源 实战演练 1. 消息TTL过期 2. 队列达到最大长度 3. 消息被拒绝 延迟队列 概念 使用场景 TTL的两种设置 死信队列 1. 死信的概念 1.1 先从概念解释上搞清楚这个定义,死信,顾名思义就是无法被消费的…...
seacmsv9联合注入数据以及绕过 ORDERBY
seacmsv9联合注入数据 php源码 <?php session_start(); require_once("../../include/common.php"); $id (isset($gid) && is_numeric($gid)) ? $gid : 0; $page (isset($page) && is_numeric($page)) ? $page : 1; $type (isset($type) …...
day58 第十一章:图论part08
拓扑排序精讲 关键: 先找到入度为0的节点,把这些节点加入队列/结果,然后依次循环再找。 #include <iostream> #include <vector> #include <queue> #include <unordered_map> using namespace std; int main() {int …...
网络安全-openssl工具
OpenSSl是一个开源项目,包括密码库和SSL/TLS工具集。它已是在安全领域的事实标准,并且拥有比较长的历史,现在几乎所有的服务器软件和很多客户端都在使用openssl,其中基于命令行的工具是进行加密、证书管理以及测试最常用到的软件。…...
Java面试第六山!《MySQL基础知识点》
一、引言 MySQL 作为一款广泛使用的开源关系型数据库管理系统,在软件开发领域占据着重要地位。无论是小型项目还是大型企业级应用,都能看到 MySQL 的身影。今天就来和大家分享 MySQL 的相关知识,帮助大家更好地应对日常开发和面试。 二、My…...
基于大数据的自助餐厅菜品供应优化与分析系统
文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言 💛博主介绍&#…...
省钱攻略:在AutoDL上用网盘离线安装PyTorch和Transformers,避开pip超时
AutoDL云平台深度学习环境搭建:网盘离线安装PyTorch全攻略 在按小时计费的云GPU平台上,每一分钟都在消耗真金白银。最近帮团队优化AutoDL环境搭建流程时发现,90%的实例启动时间浪费在pip安装环节——网络波动导致重复下载、依赖冲突引发环境崩…...
企业云盘数据安全实战:从传输加密到存储隔离的完整方案
⚠️ 一个让人震惊的事实:根据OWASP 2023年报告,超过60%的企业数据泄露事件,攻击入口不是高深的黑客技术,而是未加密的传输层。你的企业云盘HTTP流量,可能正在被监听,而你毫不知情。 前言:一个价…...
2026年降AI工具免费版和付费版区别:哪些场景下付费版才值得买
2026年降AI工具免费版和付费版区别:哪些场景下付费版才值得买 研究生群里聊起AI率的问题,发现十个人里起码六七个都在用工具降。主流的选择其实就那几款,关键是选对了能省很多麻烦。 综合价格和效果,我主推嘎嘎降AI(…...
ESP8266开发环境二选一:手把手教你用AiThinkerIDE_V1.5.2玩转NonOS与RTOS SDK(含项目迁移避坑指南)
ESP8266开发环境二选一:手把手教你用AiThinkerIDE_V1.5.2玩转NonOS与RTOS SDK(含项目迁移避坑指南) 对于嵌入式开发者来说,选择合适的开发环境往往能事半功倍。ESP8266作为一款经典的Wi-Fi芯片,提供了NonOS和RTOS两种S…...
AGI驱动的灾害预警系统已上线7省:3大实时决策引擎、5层数据验证链与1秒级灾情推演模型全披露
第一章:SITS2026专家:AGI与灾害预警 2026奇点智能技术大会(https://ml-summit.org) 在SITS2026大会上,来自全球气候建模中心、神经符号AI实验室及联合国减灾署(UNDRR)的跨学科专家组首次公开演示了基于自主通用智能体…...
告别默认路径:Rust环境自定义安装与MinGW配置实战
1. 为什么需要自定义Rust安装路径? 每次重装系统后都要重新配置开发环境,这可能是很多Windows开发者最头疼的事情之一。默认情况下,Rust会把自己的工具链安装在C盘的Users目录下,这不仅占用宝贵的系统盘空间,还会在系统…...
Python的__complex__方法支持复数运算重载与数值类型系统的完整性
Python作为一门动态类型语言,其数值类型系统的灵活性一直备受开发者青睐。其中,复数作为数学计算的重要工具,在科学计算、信号处理等领域有着广泛应用。Python通过__complex__方法实现了对复数运算的重载支持,这不仅增强了语言的表…...
从航模到创客:手把手教你用Arduino UNO和好盈40A电调DIY一个小型动力测试台
从航模到创客:用Arduino UNO和好盈40A电调构建专业级动力测试平台 当无刷电机从航模领域走向创客工作台,如何安全高效地测试其性能成为每个硬件爱好者的必修课。本文将带你用Arduino UNO和好盈40A电调打造一个可测量转速、绘制特性曲线、适配多种负载的…...
Word文档分节与页码进阶:从封面、目录到正文的格式定制指南
1. 为什么需要分节设置页码? 第一次写毕业论文时,我也被页码设置折磨得够呛。封面莫名其妙出现了页码"1",目录页的罗马数字死活显示不出来,正文页码竟然从"3"开始计数。后来才发现,Word的页码逻辑…...
