Go语言快速入门图文教程

推荐阅读:

go语言最新版激活教程可以点下这个链接查看。

goland永久安装教程,点击此处查看。

Go 这几年很火,小哈也蹭业余时间悄咪咪学习一下(我大 Java 依旧无敌😤),虽然暂时公司技术栈用不到,但保不准后面有新项目选型 Go, 到时候就能直接干活了。

技术储备还是要有的,我们要偷偷努力,然后惊艳所有人,哈哈~ 废话不多说,开干!

一、什么是 Go 语言?

Go(又称Golang)是 Goolge 开发的一种静态型、编译型、并发型,并具有垃圾回收功能的语言。

罗伯特·格瑞史莫,罗勃·派克(Rob Pike)及肯·汤普逊于2007年9月开始设计了Go语言,设计初衷是为了提高在多核、网络机器(networked machines)、大型代码库(codebases)的情况下的开发效率。当时在Google,设计师们想要去除主流编程语言中目前存在的缺点,只吸取它们的优点用于 Go 语言之中。

Go于2009年11月正式开源,同时支持 Linux、MacOS、Windows 等操作系统。

2016年,Go语言被 TIOBE 评为 "年度最佳语言"。

二、Go 语言特性

  • Go 语言上手非常容易,它的风格类似于 C 语言,但是其语法在 C 语言的基础上做了大幅度简化,如去掉了冗余的表达式括号,循环遍历也只有 for 一种写法等;
  • 工程结构简单;
  • 代码可读性和易用性高;
  • 编译速度快,由于其语法简单、工程结构设计严谨、没有头文件、无包交叉依赖等特点,很大程度上节约了编译所需耗时。
  • 高性能,原生支持并发。Go 语言的并发基于 goroutine, 它类似于线程,但并非线程。Go 语言运行时,会参与调度 goroutine, 并将 goroutine合理的分配到每个 CPU 中,从而最大程度的保证 CPU 的使用率。
  • 丰富强大的标准库,其中包括网络、图形、系统、加密、编码等各个方面。

三、Go 语言有多火 ?

Go 语言号称是互联网时代的 C 语言,那么它到底有多火呢?

1.绝大多数的云原生项目都是用 Go 语言编写的,比如:

  • Docker: 容器化技术;
  • Kubernetes: 构建于 Docker 之上的容器调度服务;
  • etcd: 一款分布式、可靠的 KV 存储系统;
  • Istio: 一个与 Kubernetes 紧密结合的适用于云原生场景的 Service Mesh 形态的用于服务治理的开放平台;
  • Prometheus: 一个开源的服务监控系统和时间序列数据库;
  • ...

2.Go 语言将会成为云计算时代的基础设施编程语言,比如区块链明星项目 Hyperledger、NewSQL , 明星项目 TiDB 也是基于 Go 语言的;

3.Go 语言已经成为下一个企业级编程语言,包括字节跳动、滴滴、腾讯、阿里巴巴在内的一线互联网公司都在使用。

四、下载 Go 安装包

想要学习 Go 语言, 首先得下载 Go 语言安装包。可以前往如下两个网站下载:

Golang 中国: https://golang.google.cn/dl/

Go 语言官网: https://golang.org/dl/

提示: Go 语言官网需要科学上网才能访问,推荐到第一个链接进行下载。

访问成功后,如下图,根据自己的系统,选择对应的 Go 语言安装包,点击下载即可。

下载好对应系统安装包后,可参见后续章节的安装说明:

若你选择从源码构建,可参考 官方构建文档

另外,Go 语言历史版本,请参见: http://docs.studygolang.com/doc/devel/release.html

相关说明

文件名 说明
go1.15.3.windows-amd64.msi Windows 平台安装包
go1.15.3.linux-amd64.tar.gz Linux 平台安装包
go1.15.3.darwin-amd64.pkg MaxOS 平台安装包
go1.15.3.src.tar.gz Go 语言源码包,作研究用,日常开发不推荐下载

五、安装 Go 语言环境

Windows 安装 Go

本小节,小哈将演示如何在 Windows 系统上安装 Go 语言环境。

PS: 关于安装包名称,你需要了解的:

1.15.4 表示的是当前 Go 安装包的版本号;

windows 表示这是 Windows 系统的安装包;

amd64 表示匹配 64 位的 CPU;

下载完成后,双击安装包开始安装:

点击 Next

这里 Go 开发包的默认安装路径为 C:\Go\, 推荐使用这个默认路径。

安装完成后,我们可以到 C:\Go\ 目录下,看看目录结构:

Go 安装目录说明

目录名 说明
api 各个版本 api 变更差异
bin go 源码包编译出来的编译器、格式化工具、文档工具等
doc 英文版的 Go 文档
lib 依赖的一些库文件
misc 其他用途的相关文件,如 Android 平台的编译等
pkg Windows 平台编译好的中间文件
src 标准库源码
test 测试用例

检查 Windows 系统 Go 环境是否安装成功

打开 cmd 窗口,执行命令:

go version

若正确输出 Go 语言的版本号,表示安装成功:

Linux 安装 Go

这里,小哈以自己购买的云服务器 CentOS 7 做演示。

下载完成后,将压缩包上传到指定目录下,执行如下命令,将压缩包解压到 /usr/local/go 下:

tar -C /usr/local -xzf go1.15.4.linux-amd64.tar.gz

解压完成后,通过 vi 编辑器打开 profile 文件:

vi /etc/profile

profile 文件中添加下面这行,目的是将 /usr/local/go/bin 目录添加到 PATH 环境变量中去:

export PATH=$PATH:/usr/local/go/bin

然后执行如下命令,让新添加的环境变量生效:

source /etc/profile

完成后,执行如下命令,检查 Go 语言是否安装成功:

go version

若正确输出 Go 语言版本号,则表示安装成功。

Mac 安装 Go

Mac 系统有下面两种安装方式。

通过 brew 安装

执行如下命令:

brew install go

或者

brew install golang

另外,也可以先通过 brew info go查看一下版本信息。

官网下载 Go 语言 pkg 包来安装

下载完成后,双击开始安装:

点击继续,等待Go安装完成。

配置Go语言环境变量

默认会将Go安装到 /usr/local/go路径下,接下来,开始配置Go语言环境变量

1、编辑 .bash_profile 文件:

vim ~/.bash_profile

2、添加 /usr/local/go 目录到 PATH 环境变量中:

# Go环境变量
export PATH=$PATH:/usr/local/go/bin

3、执行如下命令,使环境变量生效:

source ~/.bash_profile

验证结果

通过如下命令,来验证 Go 语言环境是否安装成功:

go version

若正确输出 Go 语言的版本号,则表示成功。

六、写个 Hello World 程序

通常来说,入门任何一门语言,编写的第一个程序都是用该语言向世界打声招呼: Hello World !

开始

接下来,我们来编写第一个 Go 语言程序,新建一个 helloworld.go 文件,代码如下:

提示: Go 语言源文件的拓展名以 .go 结尾。

package main

import "fmt"

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

上面代码的意思是在控制台打印字符串Hello World !

执行 Go 程序

我们有两种方式来执行上面这个程序。

第一种方式

通过 go run 命令来执行刚刚的代码, 执行命令如下:

go run helloworld.go 

效果图如下:

第二种方式

还可以通过执行 go build 命令,将刚刚这段代码编译成可执行文件:

go build helloworld.go

编译完成后,可以在目录下看到一个 helloworld可执行文件,通过 ./helloworld 命令来执行它,即可输出 Hello World !

七、结语

本文中小哈主要讲了如何快速入门 Go 语言,起到一个抛砖引玉的作用,如果本文能够对小伙伴们有用,希望小伙伴们三连一波!

以上就是Go语言快速入门图文教程的详细内容,更多关于Go语言入门教程的资料请关注我们其它相关文章!

(0)

相关推荐

  • 详解Go语言的context包从放弃到入门

    一.Context包到底是干嘛用的 我们会在用到很多东西的时候都看到context的影子,比如gin框架,比如grpc,这东西到底是做啥的? 大家都在用,没几个知道这是干嘛的,知其然而不知其所以然, 谁都在CRUD,谁都觉得if else就完了,有代码能copy我也行,原理啥啥不懂不重要,反正就是一把梭 原理说白了就是: 当前协程取消了,可以通知所有由它创建的子协程退出 当前协程取消了,不会影响到创建它的父级协程的状态 扩展了额外的功能:超时取消.定时取消.可以给子协程共享数据 二.主协程退出通

  • Go语言入门教程之Arrays、Slices、Maps、Range操作简明总结

    Arrays:数组 在go语言中数组array是一组特定长度的有序的元素集合. 复制代码 代码如下: package main import "fmt" func main() { //这里我们创建了一个长度为5的数组. 这一组数组的初值是zero-valued.整型就是0     var a [5]int     fmt.Println("emp:", a) //可以通过array[index] = value语法赋值     a[4] = 100     fmt

  • go语言入门环境搭建及GoLand安装教程详解

    Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型.编译型语言.Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算. Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

  • Go语言编程入门超级指南

    1.序言 Golang作为一门出身名门望族的编程语言新星,像豆瓣的Redis平台Codis.类Evernote的云笔记leanote等. 1.1 为什么要学习 如果有人说X语言比Y语言好,两方的支持者经常会激烈地争吵.如果你是某种语言老手,你就是那门语言的"传道者",下意识地会保护它.无论承认与否,你都已被困在一个隧道里,你看到的完全是局限的.<肖申克的救赎>对此有很好的注脚: [Red] These walls are funny. First you hate 'em,

  • Go语言入门教程之基础语法快速入门

    Go语言是一个开源的,为创建简单的,快速的,可靠的软件而设计的语言. Go语言实(示)例教程,通过过实例加注释的方式来介绍Go语言的用法. Hello World 第一个程序会输出"hello world"消息.源代码如下: 复制代码 代码如下: package main import "fmt" func main() {     fmt.Println("hello world") } //通过go run来运行Go程序 $ go run h

  • Go语言快速入门图文教程

    推荐阅读: go语言最新版激活教程可以点下这个链接查看. goland永久安装教程,点击此处查看. Go 这几年很火,小哈也蹭业余时间悄咪咪学习一下(我大 Java 依旧无敌

  • 二十分钟 教你Ruby快速入门 图文教程第1/4页

    突然发现,ruby也不错,我有点打算想学下了介绍 这是一个短小的Ruby入门,完全读完只需20分钟.这里假设读者已经安装了Ruby,如果你没有安装的话,请在阅读文前访问Ruby官方网站进行下载并安装. 交互式的Ruby 打开IRB(交互式Ruby外壳): 如果你使用Mac OS X,那么请打开终端窗口输入irb: 如果你使用Linux,那么请打开shell输入irb: 如果你使用windows,那么请在开始菜单中找到Ruby->fxri,并执行它. Ok,在打开IRB之后,在其中输入"He

  • Go语言快速入门指针Map使用示例教程

    目录 1. 指针 1.1 指针地址和指针类型 1.2 指针取值 1.3 空指针 1.4 new 的使用 1.5 new与make的区别 2. Map 2.1 什么是Map key,value存储 hash冲突 hash冲突的常见解决方法 开放定址(线性探测)和拉链的优缺点 2.2 Map 定义 2.3 map基本使用 2.4 map的遍历 2.5 map判断某个键是否存在 2.6 map使用delete()函数删除键值对 1. 指针 区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,

  • NodeJS中的MongoDB快速入门详细教程

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 一.MongoDB必须理解的概念 1.数据库:每个数据库都有自己的权限和集合. 2.文档:一个键值对. 3.集合:一组文档,即一组键值对.当第一个文档插入时,集合就会被创建. 二.Mac下的MongoDB安装和启动 1.使用brew进行安装:brew ins

  • Vue.js 十五分钟入门图文教程

    TypeScript 为 JavaScript 带来静态类型检查,让 JavaScript 编写中大型应用的时候可以应用工具来避免部分错误. Vue 很早就支持 TypeScript,但配置起来比较麻烦,幸好有了 Vue CLI 3.0.安装好 vue-cli 之后,使用 vue create 项目名称 来创建项目,vue 脚本手架自动创建以项目名称命名的目录. vue-cli 3 生成的项目结构比较科学,尤其是通过 components 和views 将作为控件的组件和作为页面的组件分离开来,

  • Vue.js快速入门实例教程

    什么是vue vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API. 一.基本结构 index.html代码: <script src="../vue.js"></script> <div id="app"> {{ message }} </div> <script src="app.js"></script> <

  • mybatis快速入门学习教程新手注意问题小结

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • MyBatis Plus工具快速入门使用教程

    MyBatis-plus有什么特色 1.代码生成 2.条件构造器 对我而言,主要的目的是使用它强大的条件构建器. 快速使用步骤: 1.添加pom文件依赖 <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version> </dependency> <dep

  • VScode上配置 c语言环境的图文教程

    成成最近用到C语言了,之前比较喜欢用在vscode上面用python调试,今天我参考了一些文章,也尝试了下在vscode上配置c语言的调试,其中包含一些相关的基础知识. 1.在vscode里面下载c/c++官方插件: 2.安装c/c++编译器: 在windows上借助MinGW工具安装,下载地址:[https://sourceforge.net/projects/mingw/ ] 安装在d:\MinGW 下就好(自己新建一个文件夹),然后打开后这个样子: 在里面找到mingw32-gcc.bin

  • 手把手教你搭建腾讯云服务器入门(图文教程)

    本文由博主 威威喵 原创 博客主页:https://blog.csdn.net/smile_running 背景 暑假期间,愁着无聊但也不能荒废学业吧,毕竟以后想靠技术混口饭吃!为了实施自己的计划,特地挑了一个便宜的云服务器来用作自己的后台:这不是学生狗没钱嘛,所以我就挑了一个腾讯云服务器.虽说配置很低,但够我们玩就行.因为想写一个电商App,数据总不能从本地数据库来吧,那样也太没水平了!因为自己也会一点Java Web 服务器,索性租了一个云服务器,接口啥的自己写,说干就干吧. 由于本人是在校

随机推荐