【Go 快速入门】安装 Go 语言 | 开发工具 Goland | 第一个 Go 语言程序

文章目录

    • 前言
      • 安装 Go 语言
      • 编译器 Goland
      • 运行 Go 程序
      • 补充

前言

本系列教程,目的是帮助一个有其他编程基础的 Go 语言小白快速入门 Go 语言,而非启发式学习。每篇幅保证不说废话,尽可能精炼总结,为上手后续的 Go 相关项目打下基础。

系列相关代码同步 gitee 仓库:https://gitee.com/Cauchy_AQ/HelloGo

安装 Go 语言

官网 下载安装 Go 的二进制可执行文件。

在这里插入图片描述

msi 文件是微软的安装包程序,选择默认的 Go 开发包安装位置,一路安装即可。

在这里插入图片描述

安装完成后,可以在 cmd 中执行 go env 查看当前的环境变量,成功执行则代表 Go 安装成功。

在这里插入图片描述


编译器 Goland

官网 下载开发工具 Goland。

在这里插入图片描述

软件需要付费支持正版,也可以免费使用 30 天。

下载好后打开,创建本系列 HelloGo 的第一个项目 01-helloworld

GOROOT:选择 Go 工具链的安装路径,Go 编译器会自动在该目录下查找。

在这里插入图片描述

上述安装 Go 后默认的 GOPATH 下包含三个重要目录:srcpkgbinsrc 目录是用于存放 Go 语言源代码,pkg 目录是用于存放编译后的库文件,bin 目录是用于存放编译后的可执行文件。

虽然目前 Go 采用默认的 Go Modules 模式,而非 GOPATH 模式,但也可以选择将项目文件放在 src 目录下。

在设置中配置 GOPATH,用于指定 Go 语言工作区的路径,这样在模块管理时会先去 $GOPATH/pkg 查找对应模块。

在这里插入图片描述

为使 Go 在后续拉取模块版本时能够直接通过镜像站点来快速拉取。还需修改 GOPROXY,设置 Go 模块代理。

GOPROXY=https://goproxy.cn,direct

在这里插入图片描述


运行 Go 程序

上述创建新项目,配置完成后,打开 Goland 左下角的终端:

在这里插入图片描述

在此执行 go env 查看当前的环境变量:

在这里插入图片描述

可以看到 GOROOTGOPATHGOPROXY 都符合预期设置成功了,并且 GO111MODULE=on 表示开启 Go Modules 模式。

初始化项目完成后,会生成一个 go.mod 文件,它描述了当前项目(模块)的元信息,是启用了 Go modules 项目最重要的标识。

现在创建第一个 Go 程序,新建一个 main.go 文件:

package main // 声明 main 包,表明当前是一个可执行程序

import "fmt" // 导入内置 fmt 包

func main() {
	fmt.Println("Hello Golang!")
}

执行go run main.go 也可执行程序,该命令会将文件编译后在临时目录执行
编译go build 将源代码编译成可执行文件

在这里插入图片描述

至此,第一个 Go 项目就成功运行了!


补充

统一GOPROXY

由于后续项目都需要一致的 Go 模块代理,所以可以进行统一设置,并不需要每次创建新项目都进行设置。打开 cmd,执行下述语句。

go env -w GOPROXY=https://goproxy.cn,direct

跨平台编译

上述在执行 go build 后,自动生成了 exe 文件。这是由于 go envset GOOS=windows 生成对应平台下的执行文件。

如果想要在 Windows 平台编译 Linux 可执行文件,只需要在编译时指定目标操作系统和处理器架构即可。

在 cmd 下临时指定相应环境变量,并在同一 cmd 下进入项目目录下执行 go build

set CGO_ENABLED=0 	// 禁用CGO
set GOOS=linux 		// 目标操作系统 Linux
set GOARCH=amd64  	// 目标处理器架构 amd64 (linux:uname -m 查看处理器架构)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/347708.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

目标检测数据集 - 抽烟检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:抽烟检测数据集,真实合成场景高质量图片数据,涉及场景丰富,比如街景抽烟、写字楼抽烟、办公室抽烟、楼道抽烟、遮挡行人抽烟、严重遮挡行人抽烟数据;适用实际项目应用:公共场所监控或室内监控场…

2024年,每个人都应该知道的10个免费学习资源网站

在这个数字化的时代,有着许多宝贵的网络资源,提供了无限的学习机会,为每个人敞开了免费获取知识的大门。但很多人不知道它们的存在。今天分享10个免费且丰富的学习资源网站,希望对大家所有帮助。 1.freeCodeCamp 您可以免费学习…

<网络安全>《2 国内主要企业网络安全公司概览(二)》

4 北京天融信科技有限公司(简称天融信) 信息内容LOGO成立日期创始于1995年总部北京市海淀区上地东路1号院3号楼北侧301室背景民营企业是否上市天融信[002212]A股市值99亿主要产品网络安全大数据云服务员工规模6000多人简介天融信科技集团(证券代码:0022…

支持向量机(Support Vector Machines)(需要优化)

1.优化目标 一个更加强大的算法广泛的应用于工业界和学术界,它被称为支持向量机(Support Vector Machine)。与逻辑回归和神经网络相比,支持向量机,或者简称 SVM,在学习复杂的非线性方程时提供了一种更为清晰,更加强大…

利用C语言实例描述程序中的内聚和耦合

编程时,我们讲究的是高内聚低耦合,在协同开发、代码移植、维护等环节都起到很重要的作用。 一、原理篇 而低耦合,是指模块之间尽可能的使其独立存在,模块之间不产生联系不可能,但模块与模块之间的接口应该尽量少而简单…

从零学习Hession RPC

为什么学习Hessian RPC? 存粹的RPC,只解决PRC的四个核心问题(1.网络通信2.协议 3.序列化 4.代理)Java写的HessianRPC落伍了,但是它的序列化方式还保存着,被Dubbo(Hessian Lite)使用。 被落伍,只…

浅谈DNS的工作原理及其作用

DNS,全称为Domain Name System,即域名系统,是一种用于将域名和IP地址相互映射的分布式数据库系统。它将可读的域名转换为对应的IP地址,使得用户可以更方便地通过域名来访问网络上的资源。今天锐成就简单探讨一下DNS的工作原理及其…

Android网络状态差的处理方案

1,在没有网络的情况下的处理 相信大家面对这个情况处理起来是毫无压力的. //有网 if (Utils.isNetworkConnected(this)) {loadingView.setVisibility(View.VISIBLE);//显示正在加载//联网获取数据getDataFromNet(); } else {//没网直接显示本地数据.showView();Toast.makeTex…

Ubuntu20.04 安装 ROS noetic + MAVROS

本文在 AlphaCatOvO【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程 基础上,根据实际安装经验,稍微进行补充。 一、安装Ubuntu20.04 假设已经正确安装。 二、安装 ROS noetic 2.1 换源 执行 sudo apt update sudo mv /etc/apt/sources.list /etc/apt/…

C++代码入门07 函数调用语句

图源:文心一言 听课笔记简单整理,包括以下内容”🐋3.2 二进制转十进制、🐋3.3 数学公式1:用反切函数表示pi、🐋3.4 判断回文数、🐋3.5 数学公式2:分段函数、🐋3.6 扔骰子…

容器安全工具

容器安全工具是用于保护和监控容器环境安全的工具。它们提供了一系列功能,包括容器镜像的漏洞扫描、运行时监控、事件日志记录、访问控制、运行权限管理等。以下是一些常见的容器安全工具: 1. Docker Bench Security:用于检查Docker环境配置的安全性,提供一些最佳实践建议…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM平台编程第二天-ARM汇编(物联技术666)

链接:https://pan.baidu.com/s/1bG0tuVaACATvjLwD05j1FQ?pwd1688 提取码:1688 上午:ARM编程模型 下午:常用ARM指令 教学内容: 1、ARM数据类型 字节(Byte):在ARM体系结构及常见的…

无限可能!安全狗入选“潜力十强企业”

近日,等级保护测评公布了“2023年网络安全优秀评选”活动评选结果。 作为国内云原生安全领导厂商,安全狗凭借突出的综合实力,荣获“潜力十强企业”称号。 厦门服云信息科技有限公司(品牌名:安全狗)创办于…

redis-发布缓存

一.redis的发布订阅 什么 是发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。 Redis 客户端可以订阅任意数量的频道。 Redis的发布和订阅 客户端订阅频道发布的消息 频道发布消息 订阅者就可…

信创UOS

信创UOS 国产操作系统 文章目录 信创UOS前言一、信创UOS是什么二、信创UOS的特点与局限性1. 信创UOS的特点2. 信创UOS的局限性三、信创UOS常见故障总结前言 信创UOS(Union Operating System)是由中国软件与技术服务股份有限公司(CS&S)开发的一款操作系统。它是中国政府…

SpringCloudFunction漏洞分析

前言 SpringCloudFunction是SpringBoot开发的一个Servless中间件&#xff08;FAAS&#xff09;&#xff0c;支持基于SpEL的函数式动态路由。在特定配置下&#xff0c;3 < 版本 < 3.2.2&#xff08; commit dc5128b 之前&#xff09;存在SpEL表达式执行导致的RCE。 补丁分…

卸载软件Geek Uninstaller,MySQl安装不成功

最近刷最右的时候&#xff0c;看到两个帖子都是MySQl安装过程总是出现问题。大概两年前我也遇到了这个问题&#xff0c;推荐一款软件。 是因为在安装的过程之中&#xff0c;出现了问题。然后你再进行安装的时候&#xff0c;没有完全将原来安装的软件卸载掉&#xff0c;导致有注…

详解SpringCloud微服务技术栈:ElasticSearch实践1——RestClient操作索引库与文档

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;详解SpringCloud微服务技术栈&#xff1a;ElasticSearch原理精讲、安装、实践 &#x1f4da;订阅专栏&#xff1a;微服务技术全家…

多场景建模:阿里MARIA

Multi-scenario ranking framework with adaptmulti-scenario ranking framework with adaptive feature learning 背景 多模态搜索场景支持用户通过不同模态的Query来表达多样的搜索需求。 拍照搜索&#xff08;Visual Search&#xff09;&#xff1a;实拍图作为query相似商…

05.Elasticsearch应用(五)

Elasticsearch应用&#xff08;五&#xff09; 1.Mapping介绍 Mapping是对索引库中文档的约束&#xff0c;类似于数据表结构&#xff0c;作用如下&#xff1a; 定义索引中的字段的名称定义字段的数据类型&#xff0c;例如字符串&#xff0c;数字&#xff0c;布尔等字段&…