系列教程之《高铁上的GO》-第一篇

news2024/10/5 1:26:59

作者:坚果,OpenHarmony布道师,OpenHarmony校源行开源大使,CSDN博客专家,电子发烧友鸿蒙MVP,51CTO博客专家博主,阿里云博客专家。

本文主要讲解Go是什么,Go如何安装,开发Go的编辑器,以及第一个Go程序。

系列教程之《高铁上的GO》-第一篇

    • Let‘S GO
    • Go语言的优点
    • Go适合做什么
    • Go的未来
    • 安装
      • 检查
    • Go开发编辑器
    • GOROOT和GOPATH
      • GOPROXY
    • 第一个Go程序
      • Hello World
        • go mod init
        • 编写代码
      • 编译
      • go run
      • go install
    • 参考文档

Let‘S GO

Go是一门编译型的和静态的编程语言。 Go诞生于谷歌研究院。 Go的核心设计成员中包括很多有着数十年编程语言研究领域经验的研究者。

Go语言的优点

  • 程序编译时间短
  • 像动态语言一样灵活
  • 内置并发支持
  • Go程序生成的二进制可执行文件常常拥有以下优点:
    • 内存消耗少
    • 执行速度快
    • 启动快
  • Go的语法很简洁并且和其它流行语言相似。
  • Go拥有一个比较齐全的标准库。
  • Go拥有一个活跃和回应快速的社区。

Go适合做什么

  • 服务端开发
  • 分布式系统,微服务
  • 网络编程
  • 区块链开发
  • 内存KV数据库,例如boltDB、levelDB
  • 云平台

Go的未来

目前Go语言已经⼴泛应用于人工智能、云计算开发、容器虚拟化、⼤数据开发、数据分析及科学计算、运维开发、爬虫开发、游戏开发等领域。

Go语言简单易学,天生支持并发,完美契合当下高并发的互联网生态。Go语言的岗位需求多,好找工作。

安装

Go官网下载地址:https://go.dev/

Go官方镜像站(推荐)https://golang.google.cn/dl/

Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。

检查

安装完成之后,可以打开终端窗口,输入go version命令,查看安装的Go版本

image-20230103081759772

Go开发编辑器

安装完成之后就是编辑器的选择了

Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用[VS Code](https://code.visualstudio.com/Download)和Goland。 VS Code是微软开源的编辑器,而Goland是jetbrains出品的付费IDE。

我在这里用的是VS Code

Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。

Windows平台按下Ctrl+Shift+P,Mac平台按Command+Shift+P,这个时候VS Code界面会弹出一个输入框,如下图:

vscode

我们在这个输入框中输入

image-20230102235346190

GOROOT和GOPATH

GOROOTGOPATH都是环境变量,其中GOROOT是我们安装go开发包的路径,而从Go 1.8版本开始,Go开发包在安装完成后会为GOPATH设置一个默认目录,并且在Go1.14及之后的版本中启用了Go Module模式之后,从此以后不一定非要将代码写到GOPATH目录下,所以也就不需要我们再自己配置GOPATH了,使用默认的即可。

想要查看你电脑上的GOPATH路径,只需要打开终端输入以下命令并回车:

go env

在终端输出的内容中找到GOPATH对应的具体路径。

GOPROXY

Go1.14版本之后,都推荐使用go mod模式来管理依赖环境了,也不再强制我们把代码必须写在GOPATH下面的src目录了,你可以在你电脑的任意位置编写go代码。(网上有些教程适用于1.11版本之前。)

默认GoPROXY配置是:GOPROXY=https://proxy.golang.org,direct,由于国内访问不到https://proxy.golang.org,所以我们需要换一个PROXY,这里推荐使用https://goproxy.iohttps://goproxy.cn

可以执行下面的命令修改GOPROXY:

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

第一个Go程序

Hello World

现在我们来创建第一个Go项目——helloWord。在我们桌面创建一个helloWord目录。

go mod init

使用go module模式新建项目时,我们需要通过go mod init 项目名命令对项目进行初始化,该命令会在项目根目录下生成go.mod文件。例如,我们使用hello作为我们第一个Go项目的名称,执行如下命令。

go mod init hello

运行之后的命令如图所示:

image-20230103082418237

编写代码

接下来在该目录中创建一个main.go文件:

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

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

func main(){  // main函数,是程序执行的入口
	fmt.Println("Hello World!")  // 在终端打印 Hello World!
}

非常重要!!! 如果此时VS Code右下角弹出提示让你安装插件,务必点 install all 进行安装。

编译

go build

go build命令表示将源代码编译成可执行文件。

在hello目录下执行:

go build

编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是Windows平台会在当前目录下找到hello.exe可执行文件。我用的是mac,所以就不执行了。但是我们依旧可以用后面的go run main.go来执行程序。

go run

go run main.go也可以执行程序,该命令本质上是先在临时目录编译程序然后再执行。

这个时候可以在控制台看到helloword

go install

go install表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到GOPATH的bin目录下。因为我们GOPATH下的bin目录添加到了环境变量中,所以我们就可以在任意地方直接执行可执行文件了。

明天的内容要带大家了解一下Go的相关命令,以及文件夹的构成。

参考文档

GO语言官网

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

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

相关文章

【Docker】(二)使用Dockerfile构建并发布一个SpringBoot服务

1.前言 在上一篇笔记 Docker基本概念与安装 中,我们已经获取到了一个Docker服务,并了解了Docker的基本组成及其各个组件的作用。 我们了解到,使用Docker的其中一个目的,是为了更加简单,方便的部署我们编写的服务&…

Typora下载和Markdown基础语法

本章内容如下: Typoar笔记下载资源及主题设置Markdown语法使用的基本方法 这篇博客一开始是为了教女朋友如何使用Typora和Markdown语法写的笔记,Markdown语法的内容不太全,只涉及基础使用。 文章目录Typora下载与主题设置Typora主题设置修改图…

在线考试答题系统的五大功能,你知道多少?

在线考试答题系统-五大功能,你知道多少?-在线考试答题系统优势:在线考试答题系统具有高度的可扩展性,高效灵活、功能强大。考试用户随时随地就可通过网络登录在线考试答题系统,参加在线报名、在线练习、在线考试、在线…

嵌入式开发中为什么选择C语言?它有哪些特点?

众所周知,C语言在嵌入式开发中占据着十分重要的地位,为什么嵌入式开发要选择C语言?嵌入式开发的方向可以分为单片机开发、Linx应用开发和现场可编辑逻辑门阵列(FPGA)开发,不同于传统开发模式,操作系统是嵌入…

Nepnep x CatCTF Writeup

Web: 题目名称 ez_js 直接查看网页源代码,查看game.js,进入该目录即可得到flag Reverse: 题目名称 The cat did it 点进来看到一个看着很复杂的图像,离开的概率我猜是0% MD5加密,第一个即为flag Misc&am…

给在校学生的科普文:数字芯片后端工程师的日常

芯片后端设计,看似只是将网表中的晶体管摆放好。但并不是如同砖头砌墙那样简单粗暴。它是一门兼具形式美和工程实践需求的技术。形式美,直接来源于功能内容和需求,在后端设计的环节中,数以万计的标准单元如散乱的点点繁星&#xf…

2022年度穿戴设备行业分析:智能手表销额增长25%,智能手环销量下滑

当前,随着社会经济的发展与居民可支配收入的提高,居民的购买力逐渐增强,我国智能穿戴设备行业也得以快速发展。同时,随着相关技术的不断开发,我国智能穿戴设备行业的技术水平也持续提高。根据数据显示,智能…

软考中级数据库系统工程师好考吗?

数据库还好的,每年五月份考试,通过率20-30%。 数据库系统工程师,主要考核内容:数据库系统基本概念及关系理论;常用的大型数据库管理系统的应用技术;数据库应用系统的设计方法和开发过程;数据库系…

【C++修炼之路】12. stack queue类

每一个不曾起舞的日子都是对生命的辜负 stack&&queue一. stack的介绍和使用1. stack的介绍2. stack的使用二. stack的模拟实现三. queue的介绍和使用1. queue的介绍2. queue的使用四. queue的模拟实现五. deque的介绍和使用1. deque的介绍2. deque的使用3. deque的缺陷…

东方通无法加载程序jar包中的js

东方通中间件使用龙芯适配程序问题描述:东方通无法加载程序jar包中的js排查过程:根据以往经验确保东方通处于最新版本,确认版本为最新的检查容器配置,确认无误在东方通tongweb/bin/external.vmoption 里把-DWebModuleOnly参数值改…

Qt扫盲-QSS定制Qt Widget控件

QSS定制Qt Widget控件概述一、盒子模型二、子控件概述 在使用样式表时,每个部件都被视为具有四个同心矩形的盒子:外边距矩形、边界矩形、内边距矩形和内容矩形。 其实即是每一个继承至 QWidget 都支持的,这个和 前端的 CSS 里面的 盒子模型有些区别但是…

哪吒S亮相广州车展,定位B级燃油车颠覆者

2022年收官,哪吒汽车宣布全年交付152073台,其中: •哪吒U 51021台; •哪吒V 98847台; •哪吒S 2003台(12月首月交付)。与此同时,在年末的广州车展,哪吒汽车携全系车型参展…

Elastic-Job分布式任务调度(2):Elastic-Job快速入门

1 环境搭建 1.1 版本要求 JDK要求1.7及以上版本 Maven要求3.0.4及以上版本 zookeeper要求采用3.4.6及以上版本 1.2 Zookeeper安装&运行 自行查看我的zookeeper专题 ZooKeeper(3):ZooKeeper集群环境搭建_不死鸟.亚历山大.狼崽子的博客-CSDN博客 1.3 创建maven工程 创建…

Python代理IP的使用和代理池的设置

熟悉python的人都知道为了python的正常请求,维持数据的稳定获取,都会用到代理IP。代理IP不仅可以用来规避IP在单位时间的请求次数,还可以借助代理来隐藏真实的IP,避免出现“IP请求过于频繁”,“403”等报错。今天就带大…

甲方安全之仿真钓鱼演练(邮件+网站钓鱼)

文章目录一、简介1.1 前言1.2 整体思路1.3 演练所需1.4 各邮件厂商日群发上限二、钓鱼平台搭建及配置2.1 gophish平台搭建2.2 收件目标配置(User & Groups)2.3 发信邮箱配置(Sending Profiles)2.4 邮件模版配置(Em…

Windows下socket网络编程,C++,Email的客户端程序(支持邮件基于SMTP的发送和POP3的接收)

阅读前请看一下:我是一个热衷于记录的人,每次写博客会反复研读,尽量不断提升博客质量。文章设置为仅粉丝可见,是因为写博客确实花了不少精力。不用担心你关注我而我却不关注你,因为我是个诚信互关的人!&…

linux--管道

这里写自定义目录标题基本概念管道特征编写模型有名管道模型示例demowrite.cread.c结果无名管道基本概念 进程间存在天然的壁垒,进程间通信(Interperocess Communication,IPC)是指二个或者多个进程之间进行数据交换的过程 管道特征 管道是进程间通讯的一种常用方法。管道分为…

MyISAM 引擎和 InnoDB 引擎中索引存储的区别

一、MyISAM 引擎下的索引 MyISAM 存储引擎不支持行级锁,只有表级锁;不支持事务,也不支持外键,主要面向 OLAP 应用,是 MySQL 数据库5.5.8 版本之前默认的存储引擎,MyISAM 适用于不需要关心事务,…

实时即未来,大数据项目车联网之原始数据实时ETL任务HBase调优【九】

1. 原始数据实时ETL任务HBase调优 1.1 数据写入hbase优化 上一节写入数据,一条条数据put到表中,对于大量数据的写入,效率极低,因此针对此项进行优化 使用hbase客户端写缓存进行批量写入数据到hbase中 hbase客户端写缓存对象:BufferedMutator hbase的每一次put操作写入数据…

CSS权威指南(二)选择符

1.样式的基本规则 CSS的一个核心优势就是可以为文档中某种种类的元素全部应用相同的样式规则。CSS样式便于修改和编辑,而且能应用到指定的所有文本元素上。 (1)元素选择符 即直接使用元素的名称进行选择,类似于p{ font-size:10px…