【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 查看处理器架构)

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

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

相关文章

基于物联网设计的水稻田智能灌溉系统(STM32+华为云IOT)

一、项目介绍 随着科技的不断发展和人们生活水平的提高,农业生产也逐渐向智能化、高效化的方向发展。水稻作为我国主要的粮食作物之一,其生长过程中的灌溉管理尤为重要。传统的灌溉方式往往依赖于人工观察和控制,不仅效率低下,而…

mmdetecion

安装和测试: GET STARTED — MMDetection 3.3.0 documentation mmdetection从配置到训练_openmim-CSDN博客 训练voc数据集: mmdetection训练自己的VOC数据集及常见问题_mmdetection训练voc数据集-CSDN博客 训练自己的COCO数据集及常见问题见下文&…

搜索与图论第五期 拓扑序列

前言 拓扑排序是非常重要的一部分,希望大家都能够手撕代码!!!(嘿嘿嘿) 一、拓扑排序定义(百度须知嘿嘿嘿) 拓扑排序 拓扑排序是一种对有向无环图(Directed Acyclic Gra…

flink学习之窗口处理函数

窗口处理函数 什么是窗口处理函数 Flink 本身提供了多层 API,DataStream API 只是中间的一环,在更底层,我们可以不定义任何具体的算子(比如 map(),filter(),或者 window()),而只是…

Java事务的传播

Java事务的传播详解 欢迎来到本博客,今天我们将深入探讨Java中事务传播行为,这是在处理多个事务边界时至关重要的一环。 1. 事务传播概述 在Java中,事务是一系列操作的执行单元,要么全部执行成功,要么全部回滚。事务…

GitHub Copilot 与 ChatGPT:哪种工具更适合软件开发?

GitHub Copilot 与 ChatGPT:哪种工具更适合软件开发? 比较 ChatGPT 与 GitHub Copilot编程语言功能性定制化训练数据上下文准确性 ChatGPT 与 GitHub Copilot:哪个更适合软件开发?常见问题解答: 不断发展的编程世界正在…

深入理解stress/stress-ng

文章目录 一、概述二、安装2.1、源码编译安装2.2、命令行安装2.3、安装确认 三、重要参数详解3.1、查询支持的参数3.2、重要参数说明 四、实例4.1、压测CPU4.2、压测内存4.3、压测IO4.4、压测磁盘及IO4.5、压测磁盘及CPU 团队博客: 汽车电子社区 一、概述 stress是一种工作负载…

电子行业含砷废水,深度除砷技术

砷是一种类金属元素,砷化物生物毒性极强,是国际公认的第一类致癌物。因此,这些含砷废水必须经过一定的处理才能排放到环境中。那么,哪些行业会产生含砷废水呢?在地球上,砷是一种常见的元素。在自然界中,砷…

2023年CSDN年底总结-独立开源创作者第一年

2023年最大的变化,就是出来创业,当独立开源创作者,这一年发起SolidUI开源项目,把知乎重新开始运营起来。CSDN粉丝破万,CSDN博客专家和AI领域创作者。 2023年年度关键词:创业 https://github.com/CloudOrc…

SpringBoot责任链与自定义注解:优雅解耦复杂业务

引言 责任链模式是一种行为设计模式,它允许你将请求沿着处理者链进行传递,直到有一个处理者处理请求。在实际应用中,责任链模式常用于解耦发送者和接收者,使得请求可以按照一定的规则被多个处理者依次处理。 首先,本…

如何区分 html 和 html5?

HTML(超文本标记语言)和HTML5在很多方面都存在显著的区别。HTML5是HTML的最新版本,引入了许多新的特性和元素,以支持更丰富的网页内容和更复杂的交互。以下是一些区分HTML和HTML5的关键点: 新特性与元素:H…

zabbix 安装和启动报错处理

zabbix 安装报错处理 yum安装agent或者proxy报错解决办法,yum源取消检查配置 对已经安装好的zabbix 报错解决办法 yum安装agent或者proxy报错 配置官方源 rpm -ivh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpmyum安装报…

搭建k8s集群实战(三)安装配置containerd、kubelet、kubeadm、kubectl

k8s在1.24之后,使用containerd代码docker提供容器服务。 下面说明如果安装containerd,并设置镜像仓库。 添加源 yum install -y yum-utilsyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo安装containerd 由于CentOS 8 默…

Ceph篇之利用Prometheus监控ceph服务

一、Ceph内置模块 Ceph manager 内部的模块中包含了 prometheus 的监控模块,并监听在每个 manager 节点的 9283 端口,该端口用于将采集到的信息通过 http 接口向 prometheus 提供数据。 二、监控搭建 1、启用 prometheus 监控模块 ceph mgr module enable promethe…

研究性学习:当地能源资源调查

1. 课题名称 当地能源资源调查 2. 起止时间 起始时间:2024年1月25日 结束时间:2024年2月20日 3. 项目组成员 组长:王五组员:赵六、钱七校内指导教师:李老师校外指导教师:能源专家刘教授4. 组员分工情况 搜集整理资料: 王五:负责搜集西安市能源资源的分布情况、使用…

Java+Spring Cloud +Vue+UniApp微服务智慧工地云平台源码

目录 智慧工地云平台功能 【劳务工种】所属工种有哪些? 1.管理人员 2.信息采集 3.证件管理 4.考勤管理 5.考勤明细 6.工资管理 7.现场统计 8.WIFI教育 9.课程库管理 10.工种管理 11.分包商管理 12.班组管理 13.项目管理 智慧工地管理平台是以物联网、…

Windows物理主机迁移至VMware ESXI服务器

文章目录 物理主机迁移至VMware ESXI服务器一、迁移环境二、迁移步骤1、主机A准备工作1、关闭主机A的防火墙2、主机A需要设置管理员密码3、主机A需要设置允许共享访问 2、主机B操作步骤1、安装**VMware vCenter Conver…

鸿蒙开发第2篇__装饰器

在ArkTS中, 有装饰器语法。 装饰器用于装饰类、结构、方法、变量,赋予其特殊的含义。 1. Component 表示自定义组件, 用此装饰器的组件是可重用的,可以与其他组件重合 此装饰器装饰的 struct 表示该结构体具有组件化能力&#…

Java复习系列之阶段二:数据库(2)

1. 基础语法 1.1 DQL(数据查询语句) 执行顺序: from、join 、on、where、group by、having、select、distinct、order by、limit 1.2 DML(数据修改语言) 对数据表的增删改 insert into update set delete form 1.…

新年短信群发选择自己发还是106短信平台合适?

选择自己发新年短信群发还是106短信平台,取决于您的需求和资源。 如果您需要发送的短信数量较少,或者您有特定的发送需求,例如需要发送一些包含敏感信息的短信,那么您可以选择自己发送。您可以使用手机或电脑上的短信应用程序来发…