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

news2024/12/22 0:01:37

文章目录

  • 下载安装包
  • 环境配置
  • 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 main

import "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.coloradmin.cn/o/2263490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

点击数字层级从 admin.vue 跳转到 inviter-list.vue 组件

文章目录 1、admin.vue2、inviter-list.vue 1、admin.vue 好的&#xff0c;我们来分析一下代码中“层级”这一列的逻辑&#xff0c;并探讨它与后端的关联。 “层级” 列的逻辑 在您的代码中&#xff0c;“层级”列的渲染逻辑如下&#xff1a; <el-table-columnalign&quo…

LabVIEW实时信号采集与频谱分析

系统通过LabVIEW与PXIe硬件结合&#xff0c;实现高精度模拟信号的实时采集、频谱分析与可视化显示。核心功能包括采样率配置、快速傅里叶变换&#xff08;FFT&#xff09;、功率谱图生成及动态缩放调整&#xff0c;同时支持信号平均与噪声抑制。系统设计灵活&#xff0c;适用于…

【ComfyUI + 铅笔素描画风】艺术家DaTou发布了的彩色铅笔素描风格生成(真实感超强)

发布时间&#xff1a;2024年12月09日 项目主页&#xff1a;https://hf-mirror.com/Datou1111/shou_xin 基础模型&#xff1a;flux.1-dev comfyui工作流下载&#xff1a;https://pan.baidu.com/s/1FrLQ4o8ldckKwhIrN1Pv7g?pwd1220 自己测试 官方效果 生成猫猫 shou_xin, a m…

洛谷 B3644 【模板】拓扑排序 / 家谱树 C语言

题目&#xff1a; https://www.luogu.com.cn/problem/B3644 题目描述 有个人的家族很大&#xff0c;辈分关系很混乱&#xff0c;请你帮整理一下这种关系。给出每个人的后代的信息。输出一个序列&#xff0c;使得每个人的后辈都比那个人后列出。 输入格式 第 1 行一个整数 …

unity接入coze智能体

官网链接 coze智能体创建、设置 点击创建–选着智能体&#xff0c;随便起一个名字&#xff0c;就可以了 添加令牌 把随便起一个名字&#xff0c;设置时间&#xff0c;把所有选项都勾选上&#xff0c;一定要勾选所有团队空间&#xff0c;否则无法点击确定。 点击确定后&a…

EE308FZ_Sixth Assignment_Beta Sprint_Sprint Essay 3

Assignment 6Beta SprintCourseEE308FZ[A] — Software EngineeringClass Link2401_MU_SE_FZURequirementsTeamwork—Beta SprintTeam NameFZUGOObjectiveSprint Essay 3_Day5-Day6 (12.15-12.16)Other Reference1. WeChat Mini Program Design Guide 2. Javascript Style Guid…

国内主流的工程项目管理软件有哪些?

随着科技的发展&#xff0c;工程管理软件已经成为了工程管理的重要工具。在国内&#xff0c;有许多优秀的工程管理软件&#xff0c;它们可以帮助我们更好地管理工程项目。那么&#xff0c;你知道有哪些工程管理软件吗&#xff1f;下面就让我们一起来盘点一下。 1、广联达 广联…

网络变压器如何识别电路

1. 基本符号的理解 曲线&#xff1a;表示变压器的线圈&#xff08;windings&#xff09;&#xff0c;每个曲线代表一个独立的线圈。 直线&#xff1a;用于连接不同的元件或引脚&#xff0c;表明电流路径。 2. 关键标注解释 CT&#xff08;Center Tap&#xff09;&#xff1a;中…

【原生js案例】ajax的简易封装实现后端数据交互

ajax是前端与后端数据库进行交互的最基础的工具&#xff0c;第三方的工具库比如jquery,axios都有对ajax进行第二次的封装&#xff0c;fecth是浏览器原生自带的功能&#xff0c;但是它与ajax还是有区别的&#xff0c;总结如下&#xff1a; ajax与fetch对比 实现效果 代码实现 …

免费开源!推荐一款网页版数据库管理工具!

免费开源&#xff01;推荐一款网页版数据库管理工具&#xff01; DBGate 是一个开源的数据库管理工具&#xff0c;DBGate 的最大特点是可以 Web 访问&#xff01;&#xff0c;轻松实现一台机器部署&#xff0c;所有人使用&#xff01; 无论是 MySQL、PostgreSQL、SQLite 还是…

主要是使用#includenlohmannjson.hpp时显示找不到文件,但是我文件已正确导入visual studio配置,也保证文件正确存在

问题&#xff1a; 主要是在项目配置中包括了C/C配置中文件位置&#xff0c;但是没有把nlohmann上一级的目录包括进去&#xff0c;导致#include"nlohmann/json.hpp"找不到文件位置 解决&#xff1a; 加上上一级目录到附加包含目录 596513661)] 总结&#xff1a; 找不…

智慧公交指挥中枢,数据可视化 BI 驾驶舱

随着智慧城市的蓬勃发展&#xff0c;公共交通作为城市运营的核心枢纽&#xff0c;正朝着智能化和数据驱动的方向演进。通过整合 CAN 总线技术(Controller Area Network&#xff0c;控制器局域网总线)、车载智能终端、大数据分析及处理等尖端技术&#xff0c;构建的公交“大脑”…

[c++11(二)]Lambda表达式和Function包装器及bind函数

1.前言 Lambda表达式着重解决的是在某种场景下使用仿函数困难的问题&#xff0c;而function着重解决的是函数指针的问题&#xff0c;它能够将其简单化。 本章重点&#xff1a; 本章将着重讲解lambda表达式的规则和使用场景&#xff0c;以及function的使用场景及bind函数的相关使…

redis数据类型:list

list 的相关命令配合使用的应用场景&#xff1a; 栈和队列&#xff1a;插入和弹出命令的配合&#xff0c;亦可实现栈和队列的功能 实现哪种数据结构&#xff0c;取决于插入和弹出命令的配合&#xff0c;如左插右出或右插左出&#xff1a;这两种种方式实现先进先出的数据结构&a…

基于51单片机的验证码收发系统的仿真设计

一、设计要求 主机、从机均以AT89C52单片机为控制核心。主机生成6位随机验证码、并将验证码发送给从机&#xff1b;从机输入验证码发送给主机&#xff0c;主机接收来自从机发送的验证码并核对两个验证码是否一致。 二、设计内容 主机通过独立按键生成6位随机验证码并发送给从…

WPF实现曲线数据展示【案例:震动数据分析】

wpf实现曲线数据展示&#xff0c;函数曲线展示&#xff0c;实例&#xff1a;震动数据分析为例。 如上图所示&#xff0c;如果你想实现上图中的效果&#xff0c;请详细参考我的内容&#xff0c;创作不易&#xff0c;给个赞吧。 一共有两种方式来实现&#xff0c;一种是使用第三…

[机器学习]AdaBoost(数学原理 + 例子解释 + 代码实战)

AdaBoost AdaBoost&#xff08;Adaptive Boosting&#xff09;是一种Boosting算法&#xff0c;它通过迭代地训练弱分类器并将它们组合成一个强分类器来提高分类性能。 AdaBoost算法的特点是它能够自适应地调整样本的权重&#xff0c;使那些被错误分类的样本在后续的训练中得到…

详细解读TISAX认证的意义

详细解读TISAX认证的意义&#xff0c;犹如揭开信息安全领域的一颗璀璨明珠&#xff0c;它不仅代表了企业在信息安全管理方面的卓越成就&#xff0c;更是通往全球汽车供应链信任桥梁的关键一环。TISAX&#xff0c;即“Trusted Information Security Assessment Exchange”&#…

黑马Redis数据结构学习笔记

Redis数据结构 动态字符串 Intset Dict ZipList QuickList SkipList 类似倍增 RedisObject 五种数据类型 String List Set ZSet Hash

sqlilabs靶场二十一关二十五关攻略

第二十一关 第一步 可以发现cookie是经过64位加密的 我们试试在这里注入 选择给他编码 发现可以成功注入 爆出表名 爆出字段 爆出数据 第二十二关 跟二十一关一模一样 闭合换成" 第二十三关 第二十三关重新回到get请求&#xff0c;会发现输入单引号报错&#xff0c…