当前位置: 代码网 > it编程>前端脚本>Golang > 「GO基础」在Windows上安装Go编译器并配置Golang开发环境

「GO基础」在Windows上安装Go编译器并配置Golang开发环境

2024年07月28日 Golang 我要评论
本文将详细介绍如何在Windows操作系统上安装Go编译器,并逐步指导用户设置Golang开发环境。内容包括下载和安装Go编译器、配置系统环境变量、创建工作空间以及编写和运行第一个Go程序等步骤,帮助初学者快速上手Golang开发。


1、安装go语言编译程序

1.1、下载golang编译器

官网下载地址:https://golang.google.cn/dl/

在这里插入图片描述

根据自己的系统下载相应版本,这里下载的是最新版本,下翻页面可以选择下载历史版本
在这里插入图片描述

1.2、安装golang编译器

运行 go1.22.2.windows-amd64.msi

进入到下载目录下,双击 go1.22.2.windows-amd64.msi 文件进行安装

选择安装目录
在这里插入图片描述

点击next,根据提示一路点击确认或者下一步到完成界面

2、配置golang ide运行环境

推荐使用 jetbrains golang: https://www.jetbrains.com/go/

jetbrains golang 无社区版,只有付费版,网上白嫖教程基本无效,白嫖golang解决方案探索

2.1、配置go编译器

2.1.1、goroot 概述

goroot 是 go 语言中的一个环境变量,它指定了go语言的安装目录。goroot 通常指向 go 语言的根目录,该目录下包含了 go 语言的编译器、标准库以及其他工具链。

2.1.2、goroot 作用

在 go 语言的开发和编译过程中,goroot 用于定位 go 语言的标准库和工具,确保开发环境能够正确地使用和调用这些资源。

通常情况下,在安装 go 编译器时,goroot 会自动配置为 go 语言的安装路径。在开发过程中,可以通过设置或修改 goroot 环境变量来指定不同的go编译器版本安装路径。

2.1.2、配置 goroot

启动 golang 并 new project 一个项目,此时 golang 根据用户系统环境变量中配置的 golang 编译器位置 自动创建 goroot

  • 如果安装了多个golang编译器版本,可以在下拉菜单中选择需要的版本
  • 如果下拉菜单中没有安装过的版本,请检查是否配置了 golang 编译器 系统环境变量。

在这里插入图片描述

点击 create 创建一个go语言项目完成

2.2、配置go依赖管理

go 1.11 版本开始,go 语言引入了 模块(module) 的概念,用于替代gopath进行依赖管理,在使用模块的情况下,gopath 的作用有所减弱,但仍用于存储一些工具和标准库等内容。

go 1.13 版本开始,可以完全不依赖 gopath

二者择其一即可,建议使用 模块(module) 管理依赖

2.2.1、module管理依赖

go module是go语言官方引入的依赖管理工具,它的主要作用包括:

  1. 依赖管理:go module可以帮助开发者管理项目的依赖关系。通过在项目中创建一个go.mod文件,go module能够记录项目所依赖的外部包及其版本信息。这样,开发者可以明确指定项目所需的依赖版本,避免因依赖版本不匹配而导致的问题。

  2. 版本控制:go module支持语义化版本控制(semantic versioning),开发者可以通过版本号来指定所需的依赖版本。这有助于确保项目的稳定性和可维护性,因为开发者可以明确知道项目使用了哪些版本的依赖。

  3. 灵活的项目布局:使用go module,项目不再需要位于传统的gopath目录结构下。开发者可以将项目放在任意位置,只要项目根目录中包含go.mod文件即可。这为开发者提供了更大的灵活性,使得项目管理更加方便。

  4. 自动下载依赖:当使用go module时,开发者只需在代码中导入所需的包,go工具链会自动下载并安装这些包。这简化了依赖管理的过程,开发者无需手动下载和管理依赖。

  5. 支持私有仓库:go module还支持从私有仓库中获取依赖。开发者可以通过配置代理或认证信息来访问私有仓库中的依赖包。

  6. 可替换依赖:在某些情况下,开发者可能需要替换项目中的某个依赖包。go module提供了替换依赖的功能,开发者可以在go.mod文件中指定要替换的依赖及其替换版本。

  7. 可验证的依赖图:go module会生成一个go.sum文件,记录项目中所有依赖包的哈希值。这样,开发者可以验证项目中的依赖是否被篡改,确保项目的安全性。

总之,go module的出现使得go语言的依赖管理更加规范和便捷,为开发者提供了更好的开发体验。

golang 创建项目时如果选择了高版本的go编译器,会自动在项目根目录下创建go.mod文件:

module gobasic

go 1.21
2.2.2、gopath 管理依赖

gopath 是 go 语言中另一个重要的环境变量,它指定了 go 语言项目的工作空间。gopath 通常指向一个包含多个 go 语言项目的目录,每个项目都位于gopath 下的一个子目录中。

在 go 语言中,gopath 扮演着以下几个关键角色:

  1. 依赖管理:go 语言使用 gopath 来管理项目的依赖关系。当一个项目依赖其他包时,go 语言会自动在 gopath 中搜索并导入这些包。
  2. 构建和安装:go 语言使用 gopath 来构建和安装项目。当执行go buildgo install命令时,go 语言会根据 gopath 中的项目结构来构建和安装可执行文件或库文件。
  3. 代码组织:gopath提供了一种组织代码的方式,使得不同的项目可以独立开发和管理。每个项目都位于gopath 下的一个子目录中,并且可以有自己的依赖关系和构建配置。

在开发过程中,通常需要设置 gopath 环境变量来指定项目的工作空间。这样 go 编译器就会在 gopath 目录下搜索和构建项目。

new project 一个go项目后,进入golang项目管理界面,file->settings-> go -> gopath

在这里插入图片描述
1、use gopath that’s defined in system enviroment

取消选择,global gopath 就不会有默认 go项目目录了

2、index entire gopath

在golang中,index entire gopath 是指在使用goland ide时,将整个gopath路径下的内容都添加到项目的索引中。这样做的目的是让ide能够更好地理解和处理项目中的依赖关系,提高代码编辑、自动完成和导航等功能的效率。如果选择这个选项,goland会将环境变量中配置的gopath路径下的所有内容都添加到项目的索引中。这样,即使项目中使用了不在项目目录中的第三方包,ide也能够正确识别和处理这些包。但是,需要注意的是,index entire gopath 可能会增加项目的索引时间和内存占用,特别是当gopath路径下包含大量文件和目录时。因此,在实际使用中,可以根据项目的具体情况来决定是否需要勾选这个选项。如果项目比较简单或者依赖关系较少,可以不勾选这个选项以减少索引时间和内存占用。反之,如果项目比较复杂或者依赖关系较多,勾选这个选项可以提高开发效率。

2.3、运行go程序

如果选择 gopath 管理依赖记得删除项目根目录下的go.mod文件(golang使用高版本go编译器创建项目时会自动创建go.mod文件)

2.3.1、创建 hello.go 文件
package main

import "fmt"

func main() {
	fmt.println("hello world !")
}

2.3.2、运行 hello.go

在这里插入图片描述

点击 add configuration… 配置go编译器

在这里插入图片描述

点击ok

在这里插入图片描述

点击运行

在这里插入图片描述

3、golang ide 高效开发配置

3.1、设置 goproxy

goproxy是一个go语言的模块代理工具,它的作用是作为go module的代理服务器,帮助开发者管理和下载go语言项目的依赖模块。

在这里插入图片描述

可选的代理有如下(注意direct是必要的)

  • https://goproxy.io
  • https://goproxy.cn
  • https://mirrors.aliyun.com/goproxy

3.2、安装效率插件

3.2.1、goimports

goimports是go语言开发中常用的一个工具,它基于go语言的官方工具gofmt,并增加了自动导入和删除包的功能。具体来说,goimports具有以下功能:

  1. 自动导入包:在编辑go代码时,如果使用了尚未导入的包,goimports会自动检测并导入这些包,无需手动添加import语句。
  2. 自动删除未使用的包:如果导入的包在代码中没有被使用,goimports会自动删除这些无用的import语句,保持代码的整洁。
  3. 格式化代码:goimports会按照go语言的官方风格指南gofmt来格式化代码,包括缩进、空格、换行等,确保代码的一致性和可读性。
  4. 支持go modules:goimports支持go语言的模块管理工具go modules,可以在使用模块管理的项目中正常工作。

在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com