百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

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

liuian 2025-05-09 20:03 38 浏览

一、前言

这里不同于其他人的 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,可以手机在局域网内控制电脑基本操作等等,敬请期待~

相关推荐

Optional是个好东西,如果用错了就太可惜了

原文出处:https://xie.infoq.cn/article/e3d1f0f4f095397c44812a5be我们都知道,在Java8新增了一个类-Optional,主要是用来解决程...

IDEA建议:不要在字段上使用@Autowire了!

在使用IDEA写Spring相关的项目的时候,在字段上使用@Autowired注解时,总是会有一个波浪线提示:Fieldinjectionisnotrecommended.纳尼?我天天用,咋...

Spring源码|Spring实例Bean的方法

Spring实例Bean的方法,在AbstractAutowireCapableBeanFactory中的protectedBeanWrappercreateBeanInstance(String...

Spring技巧:深入研究Java 14和SpringBoot

在本期文章中,我们将介绍Java14中的新特性及其在构建基于SpringBoot的应用程序中的应用。开始,我们需要使用Java的最新版本,也是最棒的版本,Java14,它现在还没有发布。预计将于2...

Java开发200+个学习知识路线-史上最全(框架篇)

1.Spring框架深入SpringIOC容器:BeanFactory与ApplicationContextBean生命周期:实例化、属性填充、初始化、销毁依赖注入方式:构造器注入、Setter注...

年末将至,Java 开发者必须了解的 15 个Java 顶级开源项目

专注于Java领域优质技术,欢迎关注作者:SnailClimbStar的数量统计于2019-12-29。1.JavaGuideGuide哥大三开始维护的,目前算是纯Java类型项目中Sta...

字节跨平台框架 Lynx 开源:一个 Web 开发者的原生体验

最近各大厂都在开源自己的跨平台框架,前脚腾讯刚宣布计划四月开源基于Kotlin的跨平台框架「Kuikly」,后脚字节跳动旧开源了他们的跨平台框架「Lynx」,如果说Kuikly是一个面向...

我要狠狠的反驳“公司禁止使用Lombok”的观点

经常在其它各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到一篇文章列举了一下“缺点”,这里我只想狠狠地反驳,看到列举的理由我竟无言以对。原文如下:下面,结合我自己使用Lomb...

SpringBoot Lombok使用详解:从入门到精通(注解最全)

一、Lombok概述与基础使用1.1Lombok是什么Lombok是一个Java库,它通过注解的方式自动生成Java代码(如getter、setter、toString等),从而减少样板代码的编写,...

Java 8之后的那些新特性(六):记录类 Record Class

Java是一门面向对象的语言,而对于面向对象的语言中,一个众所周知的概念就是,对象是包含属性与行为的。比如HR系统中都会有雇员的概念,那雇员会有姓名,ID身份,性别等,这些我们称之为属性;而雇员同时肯...

为什么大厂要求安卓开发者掌握Kotlin和Jetpack?优雅草卓伊凡

为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡一、Kotlin:Android开发的现代语言选择1.1Kotlin是什么?Kotlin是由...

Kotlin这5招太绝了!码农秒变优雅艺术家!

Kotlin因其简洁性、空安全性和与Java的无缝互操作性而备受喜爱。虽然许多开发者熟悉协程、扩展函数和数据类等特性,但还有一些鲜为人知的特性可以让你的代码从仅仅能用变得真正优雅且异常简洁。让我们来看...

自行部署一款免费高颜值的IT资产管理系统-咖啡壶chemex

在运维时,ICT资产太多怎么办,还是用excel表格来管理?效率太低,也不好多人使用。在几个IT资产管理系统中选择比较中,最终在Snipe-IT和chemex间选择了chemex咖啡壶。Snip...

PHP对接百度语音识别技术(php对接百度语音识别技术实验报告)

引言在目前的各种应用场景中,语音识别技术已经越来越常用,并且其应用场景正在不断扩大。百度提供的语音识别服务允许用户通过简单的接口调用,将语音内容转换为文本。本文将通过PHP语言集成百度的语音识别服务,...

知识付费系统功能全解析(知识付费项目怎么样)

开发知识付费系统需包含核心功能模块,确保内容变现、用户体验及运营管理需求。以下是完整功能架构:一、用户端功能注册登录:手机号/邮箱注册,第三方登录(微信、QQ)内容浏览:分类展示课程、文章、音频等付费...