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

Go 语言入门:(一) 环境安装

一、前言

这里不同于其他人的 Go 语言入门,环境安装我向来注重配置,比如依赖包、缓存的默认目录。因为前期不弄好,后面要整理又影响这影响那的,所以就干脆写成文章,方便后期捡起。

二、安装

1. 安装包
https://go.dev/dl/
https://golang.google.cn/dl/
2. 操作

将 msi 安装到指定位置, D:\Go\bin 添加到环境变量 path

3. 验证

cmd 输入 go version 查看版本号,go run test.go 执行脚本

三、环境配置

1. 查看 Go 变量
go env
2. 修改环境配置

通过上面命令查看基本默认配置后,这里就是用来修改 go 运行的缓存位置,模块安装位置。

go env -w GOMODCACHE=E:\2setsoft\2tool\go\ENV\go_modcache

四、项目创建

1. 基本目录
src 目录存放源代码。
pkg 目录存放编译后的包。
bin 目录存放编译后的可执行文件。
2. 初始化 Go 模块

在项目目录中运行 go mod init 命令来初始化一个新的 Go 模块。你需要提供一个唯一的模块路径,通常是代码仓库的 URL。

生成一个 go.mod 文件,用于记录项目的依赖关系,初始化时只有一个 go 版本,当 go get 下载了依赖包后,会自动在 go.mod 文件中记录依赖包的版本号,并生成.sum 文件。

go mod init myfirstgo
3. 添加依赖

如果你的项目需要使用第三方库,可以使用 go get 命令来添加依赖。例如,如果你想使用 github.com/gin-gonic/gin 这个库,可以运行:

go get fyne.io/fyne/v2/app

这将自动更新 go.mod 文件,添加相应的依赖项。

4. 编写 Go 程序

根目录下创建 main.go 文件并编写你的 Go 程序。以下是一个简单的示例代码,它将输出 “Hello, World!”:

package main
​
import "fmt"
​
func main() {fmt.Println("Hello, World!")
}
5. 运行 Go 程序

在项目目录中,使用 go run 命令来编译并运行你的 Go 程序:

go run main.go
6. 构建 Go 程序 (打包 exe)

(1). 进入当前目录

(2). 输入命令 go run main.go

(3). 不打开 GUI 黑框的打包命令

go build -ldflags="-H=windowsgui" -o download_tool.exe  main.go

(4). 直接编译打包运行,有黑框

go build -o download_tool.exe main.go

五、附加

1. 单元测试

Go 提供了简单的单元测试框架。你可以在项目中添加测试文件,文件名通常以 _test.go 结尾。例如,创建一个 main_test.go 文件:

package main
​
import ("testing"
)
​
func TestHelloWorld(t *testing.T) {expected := "Hello, World!"actual := "Hello, World!"if actual != expected {t.Errorf("Expected %q, but got %q", expected, actual)}
}
2. 格式化代码

Go 提供了 gofmt 命令来格式化代码,使其符合 Go 的代码风格规范:

gofmt -w .

这将自动格式化项目目录下的所有 Go 文件。

3. 打包程序不退出

编写的 Go 程序,为了让其打包后 exe 应用启动后不退出,可以这样处理:

fmt.Println("按回车键退出……")fmt.Scanln()
4.AI 编程助手

在 VsCode 安装 Fitten Code 后,点击左上角工具栏中的 Fitten Code – 开始对话或者使用快捷键 Ctrl+Alt+C。

六、写在后面

写完环境搭建,后面可能是用 Go 来做一些小工具,比如批量的文件图片下载器,office 批量转 pdf,可以手机在局域网内控制电脑基本操作等等,敬请期待~

相关文章:

Go 语言入门:(一) 环境安装

一、前言 这里不同于其他人的 Go 语言入门,环境安装我向来注重配置,比如依赖包、缓存的默认目录。因为前期不弄好,后面要整理又影响这影响那的,所以就干脆写成文章,方便后期捡起。 二、安装 1. 安装包 https://go.…...

GTC2025全球流量大会:领驭科技以AI云端之力,助力中国企业出海破浪前行

在全球化与数字化浪潮下,AI技术正成为中国企业出海的重要驱动力。一方面,AI通过语言处理、数据分析等能力显著提升出海企业的运营效率与市场适应性,尤其在东南亚等新兴市场展现出"高性价比场景适配"的竞争优势;另一方面…...

013几何数学——算法备赛

几何数学 平面切分 蓝桥杯2020年省赛题 问题描述 平面上有N条直线&#xff0c;其中第i条直线为yAxB.请计算这些直线将平面分成了几个部分&#xff1f; 输入 第一行输入一个N&#xff0c;接下来N行输入两个整数代表Ai和Bi。 1<N<10^5. 思路分析 初始时一条直线将…...

VUE3:封装一个评论回复组件

之前用React封装的评论回复组件&#xff0c;里面有三个主要部分&#xff1a;CommentComponent作为主组件&#xff0c;CommentItem处理单个评论项&#xff0c;CommentInput负责输入框。现在需要将这些转换为Vue3的组件。 Vue3和React在状态管理上有所不同&#xff0c;Vue3使用r…...

DELL R740服务器闪黄灯不开机故障案例

1&#xff1a;DELL R740服务器 2&#xff1a;东莞长安客户工厂晚上十一二点电路跳闸多次&#xff0c;导致R740 ERP服务器无法开机。 3&#xff1a;故障现象为&#xff1a;主机能正常通电&#xff0c;开机按钮无通电迹象&#xff0c;正常情况会闪绿灯慢闪&#xff0c;通电一会后…...

记录一下QA(from deepseek)

Q1:__init__.py文件 在 Python 中&#xff0c;当你在一个目录下创建 __init__.py 文件时&#xff0c;这个目录会被视为一个 包&#xff08;Package&#xff09;。包的存在使得 Python 能够通过点号&#xff08;.&#xff09;层级式地组织模块&#xff08;.py 文件&#xff09;&…...

码蹄集——进制输出、求最大公约数、最小公倍数

进制乱炖 本题考查输出的进制转换&#xff0c;可以直接使用c里的format格式输出 #include<iostream> #include<algorithm> #include<string> using namespace std;int main() {int x;cin>>x;printf("%d %o %x %u\n",x,x,x,x);//十进制 八进…...

从技术走向管理:带来哪些角色转变与挑战

文章目录 一、从技术到管理1、从技术转到管理的优劣势&#xff08;1&#xff09;优势&#xff08;2&#xff09;劣势 2、刚转岗容易犯的几个问题3、最大的变化&#xff1a;不再是一个人单打独斗4、警惕&#xff1a;一开始不要把“人”过早的介入到“事”5、如何完成角色的转变&…...

C语言-指针(一)

目录 指针 内存 概念 指针变量 取地址操作符&#xff08;&&#xff09; 操作符“ * ” 指针变量的大小 注意 指针类型的意义 作用 void * 指针 const修饰指针变量 const放在*前 const放在*后 双重const修饰 指针的运算 1.指针 - 整数 2.指针 - 指针 3.指…...

Python面试问题

一、Python 基础 1. Python 的特点 动态类型&#xff1a;变量无需声明类型。解释型语言&#xff1a;逐行解释执行。支持多种编程范式&#xff08;面向对象、函数式、过程式&#xff09;。 2. 列表&#xff08;List&#xff09;与元组&#xff08;Tuple&#xff09;的区别 特…...

RAG工程-基于LangChain 实现 Advanced RAG(预检索优化)

Advanced RAG 概述 Advanced RAG 被誉为 RAG 的第二范式&#xff0c;它是在 Naive RAG 基础上发展起来的检索增强生成架构&#xff0c;旨在解决 Naive RAG 存在的一些问题&#xff0c;如召回率低、组装 prompt 时的冗余和重复以及灵活性不足等。它重点聚焦在检索增强&#xff0…...

【时时三省】(C语言基础)循环结构程序设计习题1

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 习题1 输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数。 解题思路&#xff1a; 求两个正整数 m 和 n 的最大公约数通常使用辗转相除法&#xff08;欧几里得算法&#xff…...

[密码学实战]SDF之设备管理类函数(一)

[密码学实战]SDF之设备管理类函数(一) 一、标准解读:GM/T 0018-2023核心要求 1.1 SDF接口定位 安全边界:硬件密码设备与应用系统间的标准交互层功能范畴: #mermaid-svg-s3JXUdtH4erONmq9 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16p…...

CDGP|如何建立高效的数据治理团队?

近年来&#xff0c;数据治理行业迅速发展&#xff0c;越来越多的企业开始重视并投入大量资源来建立和完善数据治理体系。数据治理体系不仅能够帮助企业更好地管理和利用数据资源&#xff0c;提升数据质量和数据价值&#xff0c;还能够为企业带来竞争优势和可持续发展能力。 然…...

如何评价 DeepSeek 的 DeepSeek-V3 模型?

DeepSeek-V3 是由杭州 DeepSeek 公司于 2024 年 12 月 26 日发布的一款开源大语言模型&#xff0c;其性能和创新技术在国内外引起了广泛关注。从多个方面来看&#xff0c;DeepSeek-V3 的表现令人印象深刻&#xff0c;具体评价如下&#xff1a; 性能卓越 DeepSeek-V3 拥有 6710 …...

【基础篇】prometheus命令行参数详解

文章目录 本篇内容讲解命令行参数详解 本篇内容讲解 prometheus高频修改命令行参数详解 命令行参数详解 在页面的/页面上能看到所有的命令行参数&#xff0c;如图所示&#xff1a; 使用shell命令查看 # ./prometheus --help usage: prometheus [<flags>]The Promethe…...

SpringBoot实现接口防刷的5种高效方案详解

目录 前言&#xff1a;接口防刷的重要性 方案一&#xff1a;基于注解的访问频率限制 实现原理 核心代码实现 使用示例 优缺点分析 方案二&#xff1a;令牌桶算法实现限流 算法原理 核心实现 配置使用 适用场景分析 方案三&#xff1a;分布式限流&#xff08;Redis …...

DeepSearch复现篇:QwQ-32B ToolCall功能初探,以Agentic RAG为例

DeepSearch复现篇&#xff1a;QwQ-32B ToolCall功能初探&#xff0c;以Agentic RAG为例 作者&#xff1a;CyPaul Space 原文地址&#xff1a;https://zhuanlan.zhihu.com/p/30289363967 全文阅读约3分钟~ 背景 今天看到 论文&#xff1a;Search-R1: Training LLMs to Reason …...

项目实战-贪吃蛇大作战【补档】

这其实算是一个补档&#xff0c;因为这个项目是我在大一完成的&#xff0c;但是当时没有存档的习惯&#xff0c;今天翻以前代码的时候翻到了&#xff0c;于是乎补个档&#xff0c;以此怀念和志同道合的网友一起做项目的日子 ₍ᐢ ›̥̥̥ ༝ ‹̥̥̥ ᐢ₎♡ 这里面我主要负责…...

power bi获取局域网内共享文件

power bi获取局域网内共享文件 需求&#xff1a; 数据源并不一定都是在本地&#xff0c;有可能在云端&#xff0c;也有可能在其他服务器&#xff0c;今天分享如果数据源在另外一台服务器&#xff0c;如何获取数据源的方法。 明确需求&#xff1a;需要通过PowerBI获取局域网中的…...

100%提升信号完整性:阻抗匹配在高速SerDes中的实践与影响

一个高速信号SerDes通道&#xff08;例如PCIe、112G/224G-PAM4&#xff09;包含了这些片段&#xff1a; 传输线连通孔&#xff08;PTH or B/B via&#xff09;连接器高速Cable锡球&#xff08;Ball and Bump&#xff09; 我们会希望所有的片段都可以有一致的阻抗&#xff0c;…...

第六章:Tool and LLM Integration

Chapter 6: Tool and LLM Integration 从执行流到工具集成&#xff1a;如何让AI“调用真实世界的技能”&#xff1f; 在上一章的执行流框架中&#xff0c;我们已经能让多个代理协作完成复杂任务。但你是否想过&#xff1a;如果用户要求“查询实时天气”或“打开网页搜索”&…...

prompt提示词编写技巧

为什么学习prompt编写 目的&#xff1a;通过prompt的编写&#xff0c;提升LLM输出相关性、准确性和多样性&#xff0c;并对模型输出的格式进行限制&#xff0c;满足我们的业务需求。 学过提示词工程的人&#xff1a;像“专业导演”&#xff0c;通过精准指令控制 AI 输出&#…...

Nginx配置SSL详解

文章目录 Nginx配置SSL详解1. SSL/TLS 基础知识2. 准备工作3. 获取SSL证书4. Nginx SSL配置步骤4.1 基础配置4.2 配置说明 5. 常见配置示例5.1 双向认证配置5.2 多域名SSL配置 6. 安全优化建议7. 故障排查总结参考资源下载验证的完整实例 Nginx配置SSL详解 1. SSL/TLS 基础知识…...

网络安全之红队LLM的大模型自动化越狱

前言 大型语言模型&#xff08;LLMs&#xff09;已成为现代机器学习的重要支柱&#xff0c;广泛应用于各个领域。通过对大规模数据的训练&#xff0c;这些模型掌握了多样化的技能&#xff0c;展现出强大的生成与理解能力。然而&#xff0c;由于训练数据中难以完全剔除有毒内容&…...

【技术笔记】通过Cadence Allegro创建一个PCB封装(以SOT23为例)

【技术笔记】通过Cadence Allegro创建一个PCB封装&#xff08;以SOT23为例&#xff09; 一、焊盘创建二、PCB封装设计三、丝印位号及标识添加 更多内容见专栏&#xff1a;【硬件设计遇到了不少问题】、【Cadence从原理图到PCB设计】 一、焊盘创建 首先要找到元器件的相关手册&…...

新环境注册为Jupyter 内核

1. ​​确认环境是否已注册为内核​​ 在终端运行以下命令&#xff0c;查看所有已注册的内核&#xff1a; jupyter kernelspec list2. ​​为自定义环境注册内核 步骤 1&#xff1a;激活目标虚拟环境 conda activate your_env_name # 替换为你的环境名步骤 2&#xff1a;安装…...

[Spring] Seata详解

&#x1f338;个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 &#x1f3f5;️热门专栏: &#x1f9ca; Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 &#x1f355; Collection与…...

使用JDK的数据校验和Spring的自定义注解校验前端传递参数的两种方法

第一种&#xff1a;JDK的数据校验注解 PostMapping("/test")public String test(QueryParam param, RequestHeader(value "App_key") String App_key,RequestHeader(value "App_secret") String App_secret) throws IOException {param.setApp…...

JS错误处理的新方案 (不使用try-catch)

错误处理一直是JavaScript开发者需要认真对待的问题&#xff0c;传统的try-catch语法虽然简单直观&#xff0c;但在异步代码中使用时存在诸多限制。 try-catch的局限性 传统try-catch模式在现代JavaScript开发中面临的问题&#xff1a; 1. 异步错误捕获的缺陷 try-catch无法…...

前端实现商品放大镜效果(Vue3完整实现)

前端实现商品放大镜效果&#xff08;Vue3完整实现&#xff09; 前言 在电商类项目中&#xff0c;商品图片的细节展示至关重要。放大镜效果能显著提升用户体验&#xff0c;允许用户在不跳转页面的情况下查看高清细节。本文将基于Vue3实现一个高性能的放大镜组件&#xff0c;完整…...

redis未授权访问漏洞学习

一、Redis常见用途 1. Redis介绍 全称与起源: Redis全称Remote Dictionary Service(远程字典服务)&#xff0c;最初由antirez在2009年开发&#xff0c;用于解决网站访问记录统计的性能问题。发展历程: 从最初仅支持列表功能的内存数据库&#xff0c;经过十余年发展已支持多种…...

阿里qiankun微服务搭建

主服务 chat vue3 ts vite 子服务 ppt react 18 vite 子服务 agent 主服务 npm i vite-plugin-qiankun mian.ts import ./style/base.scss import virtual:svg-icons-register import { createApp } from vue import { createPinia } from piniaimport App from ./App.vue im…...

【CodeSprint】第二章-2.1 简单模拟

第二章 2.1 简单模拟 ✏️ 关于专栏&#xff1a;专栏用于记录 prepare for the coding test。 1. 简单模拟 简单模拟题目不需要复杂算法&#xff0c;直接按照题意一步步模拟即可。 1.1 促销计算 题目描述 某百货公司为了促销&#xff0c;采用购物打折的优惠方法&#xff1a…...

Golang实现函数默认参数

golang原生不支持默认参数 在日常开发中&#xff0c;我们有时候需要使用默认设置&#xff0c;但有时候需要提供自定义设置 结构体/类&#xff0c;在Java我们可以使用无参、有参构造函数来实现&#xff0c;在PHP中我们也可以实现(如 public function xxx($isCName false, $sec…...

【Python Web开发】03-HTTP协议

文章目录 1. HTTP协议基础1.1 请求-响应模型1.2 请求方法1.3 请求和响应结构1.4 状态码 2. Python 发送 HTTP 请求2.1 urllib库2.2 requests 库 3. Python 构建 HTTP 服务器3.1 http.server模块3.2 Flask 框架 4. HTTP 协议的安全问题5. 缓存和性能优化 HTTP&#xff08;Hypert…...

提高营销活动ROI:大数据驱动的精准决策

提高营销活动ROI:大数据驱动的精准决策 大家好,我是Echo_Wish。今天我们来聊聊如何通过大数据来提高营销活动的ROI(投资回报率)。我们都知道,随着市场的日益竞争,营销的成本不断增加,如何在这片红海中脱颖而出,不仅需要精准的营销策略,还需要依靠先进的技术,尤其是大…...

前端excel导出

在数据可视化和管理日益重要的今天&#xff0c;前端实现 Excel 导出功能已经成为众多项目中的刚需。 一、Excel 导出的常见场景​ 数据报表导出&#xff1a;在企业管理系统、数据分析平台中&#xff0c;用户经常需要将系统中的数据以 Excel 表格的形式导出&#xff0c;便于离…...

pymsql(SQL注入与防SQL注入)

SQL注入&#xff1a; import pymysql# 创建数据库连接 返回一个对象 conn pymysql.connect(host"localhost", # MySQL服务器地址 本地地址 127.0.0.1user"root", # 用户名 &#xff08;账号&#xff09;password"155480", # 密码database&qu…...

基于Springboot + vue + 爬虫实现的高考志愿智能推荐系统

项目描述 本系统包含管理员和学生两个角色。 管理员角色&#xff1a; 个人中心管理&#xff1a;管理员可以管理自己的个人信息。 高校信息管理&#xff1a;管理员可以查询、添加或删除高校信息&#xff0c;并查看高校详细信息。 学生管理&#xff1a;管理员可以查询、添加或…...

delphi使用sqlite3

看了一下delphi调用sqlite3最新版本的调用&#xff0c;网上说的都很片面&#xff0c;也没有完整的资料了。 我自己研究了一下&#xff0c;分享出来。 在调用demo中&#xff0c;官方也给了一个demo但是功能很少&#xff0c;没有参考价值。 1.定义&#xff1a; 首先把sqlite3…...

高压开关柜局部放电信号分析系统

高压开关柜局部放电信号分析系统 - 开发笔记 1. 项目概述 这个项目是我在2025年实现的高压开关柜局部放电信号分析系统&#xff0c;目的是通过采集分析局部放电信号&#xff0c;判断设备的工作状态和潜在故障。系统包含从信号模拟生成、特征提取、到深度学习模型训练的全流程…...

ai环境conda带torch整体迁移。

conda打包好的GPU版torch环境&#xff0c;其实很简单&#xff0c;就是conda装好的torch环境env整体打包&#xff0c;然后到新机器上再解压到env路径。 打开搭建好的环境&#xff0c;找自己路径&#xff0c;我默认的是这个。 cd/root/anaconda3/envs/ 然后整个文件夹打包。tar -…...

电价单位解析与用电设备耗电成本计算

一、电价单位 元/kWh 的解析 定义&#xff1a; 元/kWh 表示每千瓦时电能的费用&#xff0c;即1度电的价格。例如&#xff0c;若电价为0.5元/kWh&#xff0c;则使用1千瓦的电器1小时需支付0.5元。 电价构成&#xff1a; 中国销售电价由四部分组成&#xff1a; 上网电价&#xf…...

辛格迪客户案例 | 华道生物细胞治疗生产及追溯项目(CGTS)

01 华道&#xff08;上海&#xff09;生物医药有限公司&#xff1a;细胞治疗领域的创新先锋 华道&#xff08;上海&#xff09;生物医药有限公司&#xff08;以下简称“华道生物”&#xff09;是一家专注于细胞治疗技术研发与应用的创新型企业&#xff0c;尤其在CAR-T细胞免疫…...

C++(初阶)(十三)——继承

继承 继承概念示例 定义格式 继承和访问方式继承方式访问方式实例 继承类模板基类和派生类之间的转换继承中的作用域隐藏规则选择题 派生类的默认成员函数默认成员函数派生类中的实现 实现一个不能被继承的类继承与友元继承与静态成员多继承及其菱形继承问题虚继承多继承指针偏…...

S09-电机运行时间

感谢粉丝网友的支持&#xff0c;也欢迎你们的讨论和分享。昨天我们简单讨论了一下标准功能块的重要性&#xff0c;仅仅是拿电机块举了一个例子&#xff0c;有粉丝问能否把电机运行时间做到块里面&#xff0c;完善一下功能呢&#xff1f;那是绝对当然的100%可以的啊&#xff01;…...

大语言模型(LLMs)微调技术总结

文章目录 全面总结当前大语言模型&#xff08;LLM&#xff09;微调技术1. 引言2. 为什么需要微调&#xff1f;3. 微调技术分类概览4. 各种微调技术详细介绍4.1 基础微调方法4.1.1 有监督微调&#xff08;Supervised Fine-Tuning, SFT&#xff09;4.1.2 全参数微调&#xff08;F…...

python练习:求数字的阶乘

求数字的阶乘 eg:5的阶乘 54321 """ 求数字的阶乘 eg:5的阶乘 5*4*3*2*1 """count 1 for i in range(1,6):count count * iprint(count)运行结果&#xff1a;...

综合练习一

背景 某银行监管系统&#xff0c;需要设计并实现用户登入记录功能&#xff0c;每个用户登入系统时&#xff0c;系统自动记录登入用户的账户、登入时间、登入失败成功与否信息等&#xff0c;普通用户只能登入登出&#xff0c;管理员可以登入后查看日志及分析统计信息等。 用户…...