【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)

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

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

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

flink学习之窗口处理函数

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

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责任链与自定义注解:优雅解耦复杂业务

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

Ceph篇之利用Prometheus监控ceph服务

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

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

今日早报 每日精选15条新闻简报 每天一分钟 知晓天下事 1月26日,星期五

每天一分钟,知晓天下事! 2024年1月26日 星期五 农历腊月十六 1、 教育部:保障符合就业条件的公费师范生有编有岗,全部落实任教学校。 2、 禁用有毒有害材料!我国首部快递包装强制性国家标准6月1日实施。 3、 中疾控&…

BabylonJS 6.0文档 Deep Dive 摄像机(六):遮罩层和多相机纹理

1. 使用遮罩层来处理多个摄影机和多网格物体 LayerMask是分配给每个网格(Mesh)和摄像机(Camera)的一个数。它用于位(bit)级别用来指示灯光和摄影机是否应照射或显示网格物体。默认值为0x0FFFFFFF&#xff…

JOSEF约瑟 过电流继电器 JL15-1200/11 一开一闭 吊车起重机交直流可用

系列型号 JL15-/11: JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL1…

code server安装使用教程

1. 安装 1.1. 下载code-server安装包 类似这种文件:code-server-3.10.2-linux-amd64.tar.gz 解压:tar -xvf code-server-3.10.2-linux-amd64.tar.gz 1.2 (可选)建立软连接 ln -s path/to/code-server-3.10.2-linux-amd64/bin…

音频前置放大器电路图大全

音频前置放大器电路图(一) 在本设计中,前置放大器的增益控制采用直流音量控制方式,其具体实现如图1所示。前置放大器是由全差分运放和电阻构成的反相比例放大器,其增益由反馈电阻与输人电阻的比值决定。外部输人的直流…

铅酸电池废液处理需要哪些工艺设备

铅酸电池废液处理是一项非常重要的环保任务。为了保护环境和人类的健康,我们需要采取一系列工艺设备来处理这些废液。那么,到底需要哪些设备呢?让我们深入探讨一下吧。 首先,废液处理的第一步是预处理阶段。在这个阶段&#xff0c…