【GO环境安装】mac系统+GoLand使用

ops/2024/12/21 23:46:04/

文章目录

  • 下载安装包
  • 环境配置
  • GoLand
  • Go Modules


下载安装包

地址:GO下载地址
在这里插入图片描述
下载好后直接进行安装:
在这里插入图片描述
进入terminal,查看是否安装成功:
在这里插入图片描述


环境配置

  1. 在文稿下面创建工作目录:
    在文稿下新建Go_Works文件夹,在该文件夹下新建my_Golang目录。
    在这里插入图片描述

  2. 配置环境变量

进入Go_works目录,然后vim变量:
在这里插入图片描述
vim后,输入i进入input模式,然后粘贴下面(需要进行修改),修改好后按esc退出,然后按shift+:wq进行保存:

#注意=号前后不能有空格
export GOPATH=/Users/hezhe/Documents/Go_Works/my_Golang #请改成你的项目路径
export GOBIN=$GOPATH/bin  #GOLANG运行目录一般不可修改
export PATH=$PATH:$GOBIN

在这里插入图片描述

最后不要粘贴vim ~/.bash_profile,可以回遇到下面错误:
在这里插入图片描述
然后输入 source ~/.bash_profile 完成对 Goland 环境变量的配置并生效:
在这里插入图片描述
最后检查是否配置成功:
输入 go env 查看配置结果,有下面配置说明完成了
在这里插入图片描述
注意:
执行 source ~/.bash_profile 后,GOPATH 是正确的,但重新打开终端后又恢复为默认值。这说明你的配置文件 ~/.bash_profile 并没有在新终端会话中自动加载。

macOS 默认使用 zsh:从 macOS Catalina(10.15)开始,默认的 shell 已切换为 zsh,而不是 bash。因此,如果你修改的是 ~/.bash_profile,它不会被 zsh 自动加载。
未正确加载配置文件:在 zsh 中,默认加载的是 ~/.zshrc,而不是 ~/.bash_profile。

参考下面解决办法:

nano ~/.zshrc

写入和.bash_profile相同的文件,然后保存并退出(按 Ctrl+O 保存,按 Ctrl+X 退出)

最后使这个文件生效即可。

source ~/.zshrc

GoLand

安装好后打开Go_Works目录:
在这里插入图片描述
快捷键command+,配置goroot和gopath:
在这里插入图片描述
在这里插入图片描述
然后新建一个go项目:
在这里插入图片描述
然后新建一个main.go文件并运行:

package mainimport "fmt"func main() {fmt.Println("Hello Go!")
}

运行成功:
在这里插入图片描述


Go Modules

现在都是用 Go Modules(通过 go.mod 文件管理项目和依赖),GoLand创建项目时会自行创建一个go.mod的文件。【没有生成,可通过命令:go mod init my_project_name

mod管理摆脱了Go 语言早期(在 Go 1.11 引入模块之前)使用的一种工作区管理方式:
GOPATH 是 Go 的工作区,所有代码默认需要放在 GOPATH 目录下(这是早期的做法)。这个工作区按照以下结构组织代码:

  • src/:存放源代码(你的项目和第三方包的代码)。
  • bin/:存放编译后的可执行文件。
  • pkg/:存放编译好的中间文件(比如 .a 文件),这些文件可以加速编译。

Go 引入了 模块(Modules) 系统,用于更现代化的依赖管理,摆脱了对 GOPATH 的严格依赖。

  • 不再强制使用 GOPATH: 你可以在任意目录下创建 Go 项目,而不需要将项目放在 GOPATH/src 下。
  • 使用 go.mod 文件管理依赖:go.mod 文件记录了项目的模块名和依赖项的版本。Go 可以通过 go mod 自动拉取和管理依赖项,而不需要手动放入 GOPATH/src
  • 独立性: 每个项目都有自己的依赖,不会和其他项目冲突。通过 go.mod,可以明确指定项目的依赖版本。

虽然模块系统可以摆脱对 GOPATH 的依赖,但 GOPATH 仍然有用。主要体现在以下几个方面:

  1. 缓存依赖包: 当你使用 go get 拉取依赖包时,Go 会将这些依赖缓存到 GOPATH/pkg/mod 中。这个缓存用于加快依赖解析和构建速度。

  2. 默认模块存储位置: 如果你在 GOPATH/src 下创建项目,并启用了模块系统(即有 go.mod 文件),它依然可以正常工作,但推荐你将项目放到 GOPATH 之外的目录,以避免冲突。

  3. 工具链依赖: 一些早期工具(或未支持模块的工具)仍然需要 GOPATH



http://www.ppmy.cn/ops/143881.html

相关文章

游戏开发技能系统常用概念

一个角色同一时间可能存在多个Skill,一个当前播放的主动技能,还有好几个不在播放中,但是也没有结束的。 技能事件: 实现具体的技能功能,技能动作的执行都是通过触发事件来触发的,比如(时间帧&am…

Hive是什么,Hive介绍

官方网站:Apache Hive Hive是一个基于Hadoop的数据仓库工具,主要用于处理和查询存储在HDSF上的大规模数据‌。Hive通过将结构化的数据文件映射为数据库表,并提供类SQL的查询功能,使得用户可以使用SQL语句来执行复杂的​MapReduce任…

vertx idea快速使用

目录 1.官网下载项目 2.修改代码 2.1拷贝代码方式 为了能够快速使用,我另外创建一个新的maven项目,将下载项目的src文件和pom文件拷贝到新建的maven项目。 2.2删除.mvn方式 3.更新配置 4.配置application 5.idea启动项目 1.官网下载项目 从vert…

依托 SSM 与 Vue 的电脑测评系统:展现电脑真实实力

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统,它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等,非常适…

postman免登录步骤

目录 一、前言 二、操作步骤 三、篇外(postman下载安装) 一、前言 读者手册(必读)_csdn文章评分怎么看-CSDN博客 当安装postman时候不想登录可以按照这个步骤进行。还能不用更新版本,使用旧版本postman 二、操作…

微信小程序支付/微信小程序+node服务 支付爬坑 v2

一、前端 小程序登录及支付请求和唤起支付界面 // app.js const {request} require(./assets/js/utils) // app.js App({onLaunch() {// 展示本地存储能力const logs wx.getStorageSync(logs) || []logs.unshift(Date.now())wx.setStorageSync(logs, logs)// 登录wx.login({s…

Fortify 24.2.0版本最新版 win/mac/linux

工具介绍: Fortify SCA作为一款业内主流的静态代码扫描工具,被广泛应用于白盒测试中。与其他静态代码扫描工具相比,Fortify SCA的突出优势主要在于更加广泛地支持的语言和开发平台、更全面和权威的安全规则库使扫描更加全面、更加智能化的自定…

线程知识总结(二)

本篇文章以线程同步的相关内容为主。线程的同步机制主要用来解决线程安全问题,主要方式有同步代码块、同步方法等。首先来了解何为线程安全问题。 1、线程安全问题 卖票示例,4 个窗口卖 100 张票: class Ticket implements Runnable {priv…