Go 语言教程

连载中

Go 语言零基础到进阶教程:基础语法、接口与错误处理、GMP 并发模型与工程实践。

33 篇文章 开始阅读

教程目录

1

go get 没有反应,下载不了(设置代理一秒解决)

我在安装好 Go 语言 1.15 环境后,想下载 Gin 框架的依赖包,但是发现长时间没有反应,仿佛卡住了一样,下载不下来。可以通过添加国内代理来解决,方法有两种,任选一种即可 ...

2

Go 语言下载

想要学习 Go 语言, 首先得下载 Go 语言安装包, 可以前往如下两个网站下载, Golang 中国和Go 语言官网,根据自己的系统,选择对应的 Go 语言安装包,点击下载。

3

Go 语言匿名函数_回调函数

在 Go 语言中,匿名函数是没有名字的函数,只有函数体。匿名函数经常以变量的形式被传递。大部分场景下,匿名函数经常被使用于实现函数回调、闭包等。匿名函数的定义格式如下 ...

4

Go 语言数组_定义_初始化_遍历(超详细)

数组是一段固定长度的连续内存区域。在 Go 语言中,数组一旦声明,那么大小就确定了。我们可以修改数组成员,但是不能改变大小。定义数组的格式如下: var 数组变量名 [元素数量]T,下面这段代码中,定义一个变量为 arr, 成员类型为字符串, 大小为 3 的数组 ...

5

Go 语言 break 语句(跳出循环)

在 Go 语言中,break 语句可以结束 for、switch 和 select 代码块。通过 break 语句搭配标签可以跳出代码块,如跳出 for 、switch 和 select 代码块。下面的代码演示了如何通过 break 跳出多层循环,代码如下 ...

6

Go 语言闭包函数_作用_应用场景讲解

在 Go 语言中,闭包是个啥概念呢?一句话来讲:引用了外部变量的匿名函数。公式如下: 函数 + 引用外部变量 = 闭包。一、定义闭包,下面代码演示了如何在 Go 语言中定义闭包 ...

7

Go 语言常量定义与声明 (const)

相对于 Go 语言变量,常量是一个不可改变的值,如圆周率 π 等。常量在代码的编译期就已经确定了,而不是运行时。定义一个 Go 语言常量非常简单,它和变量的声明方式类似,将 var 关键字替换成 const 即可,代码如下...

8

Go 语言 continue 语句(继续下次循环)

在 Go 语言中,continue 语句可以结束当前 for 循环,进入下一次 for 循环, 代码如下 ...

9

Go 语言布尔型 (bool)

在 Go 语言中,以 `bool` 来声明布尔类型, 同时,布尔类型只有 `true` 和 `false` 两种值。if 和 for 语句的条件部分都是布尔类型的值,并且 == 和 < 等比较操作也会产生布尔型的值。一元操作符`!`对应逻辑非操作,因此`!true`的值为`false` ...

10

Go 语言字符(byte与rune)

Go 语言中,字符串的每一个元素叫做字符,主要分为以下两种:1、uint8 类型,或者叫 byte 型,代表了 ASCII 码的一个字符。2、rune 类型,代表了一个 UTF-8 字符。通常情况下,当需要处理中文、日文、韩文等复合字符时,需要用到 rune 类型...

11

Go 语言浮点型 (小数类型)

Go 语言中提供了两种精度浮点型 float32 和 float64。这两种浮点型数据格式遵循 IEEE754 浮点数国际标准,该浮点数规范被所有现代的CPU支持。float32,即我们常说的单精度,存储占用4个字节,也即4*8=32位,其中1位用来符号,8位用来指数,剩下的23位表示尾数...

12

Go 语言整型(整数类型)

在 Go 语言中,整型分为以下两个大类,按长度分为: int8 、int16、int32、int64,对应无符号类型: uint8、uint16、uint32、uint64 ,这里 unit8 就是最小单位 byte型,int16 对应 C 语言中的 short型,int64对应 C 语言中的 long 类型。

13

Go 语言字符串 (超级详细)

在 Go 语言中,字符串是一个不可改变的字节序列,类型为原生数据类型,同 int 、bool、float32、float64 是一样的。字符串的值通过双引号来包裹,Go 语言中,我们可以直接添加非 ASCII 码字符, 代码如下 ...

14

Go 语言枚举类型(iota自增)

Go 语言中其实是没有枚举类型的,但是,可以使用常量 iota 来模拟枚举。const 声明内的每一行常量声明,将会自动套用前面 iota 格式,并自动增加。有点类似于 Excel 表格自动填充功能。也就是说,第一行 Woman 枚举值定义了 0, 那么 Man 的值会自动加一,值变成了1。

15

Go 语言 for range (键值循环)

Go 语言中,我们还可以通过 for range 来遍历数组、切片、字符串、map 以及通道(channel)。通过 for range 遍历数组、切片、字符串的返回值都有一个规律:下标索引 index;下标对应的值 value;下面代码演示了如何遍历切片,数组格式类似 ...

16

Go 语言 for(循环)

在 Go 语言中,循环需要使用关键字 for 来完成,格式如下:for 初始语句;条件表达式;结束语句 { 循环体代码},for 循环会不停地进行循环,直到条件表达式返回 false 才推出循环,即执行 for 循环 "}" 后面的代码...

17

Go 语言函数定义_声明_调用(超详细)

在 Go 语言中,定义一个函数需要声明参数和函数名等。定义函数需要以 func 标识开头,后面紧接着函数名、参数列表、返回参数列表以及函数体,函数名的命名有以下约束:函数名由字母、数字、下划线组成; 函数名不能以数字开头; 同一包内,函数名不能重名...

18

Go 语言函数实现接口(将函数当做接口来调用)

在 Go 语言中,其他基本类型能够实现接口,函数同样可以实现接口。下面我们定义一个名为狗 Dog 的接口,上面这个接口需要实现 Say() 方法,调用时需传入一个 interface{} 类型的变量。这是个啥类型呢?这种类型表示你可以传入任意类型的值...

19

Go 语言函数变量(将函数保存到变量中)

在 Go 语言中,函数也是一种类型,同样可以和其他类型(如 int 、float、string 等)一样被保存到变量中。示例代码如下 ...

20

Go 语言函数

在编程中,函数是指一段可以直接被另一段程序或代码引用的、可重复使用的、用来实现单一或相关联功能的代码段。目的是为了提高应用的模块性和代码的重复利用率。相比较其他语言,Go 语言在设计上对函数进行了优化和改进,使其使用起来更加便利 ...

21

Go 语言 goto 语句(代码跳转)

在 Go 语言中,goto 语句通过标签实现代码间的跳转。它通常会被使用在快速跳出循环、避免定义重复代码等 ...

22

编写 Go 语言第一个程序: Hello World !

通常来说,入门任何一门语言,编写的第一个程序都是用该语言向世界打声招呼: Hello World ! 接下来,我们来编写第一个 Go 语言程序,新建一个 helloworld.go 文件,代码如下 ...

23

Go 语言 if else (条件判断)

Go 语言中,if else 条件判断格式如下:if 表达式1 { 分支1 } else if 表达式2 { 分支2 } else { 分支3 } ,当表达式1的结果为 true 时,会执行分支1的代码;当表达式1的结果为 false 时,会执行表达式2,若结果为 true, 则会执行分支2的代码...

24

Go 语言 list (列表)_初始化_遍历_删除

列表 (list) 是一种非连续存储的容器,又多个节点组成,节点通过一些变量将彼此串联起来。列表(list)底层常见的数据结构有: 单链表、双链表等。在 Go 语言中,列表的实现都在 container/list 包中,内部实现原理是双链表。列表(list)能够方便高效地进行元素的删除、插入操作。

25

Go 语言字典 (Map)

很多场景下都需要字典容器,它描述的是一种映射关系,如字典中的页码对应相关页内容一样。在 Go 语言中提供的字典容器为 map。 map 使用散列表(hash)实现。Go 语言中定义字典 map 格式如下: map [keyType]valueType ,键和键对应的值总是以一对一的形式存在 ...

26

Go 语言指针 (图文教程,超级详细)

大部分面向对象语言都很少有用到指针的场景了,但是在Go语言中有大量的指针应用场景,要想学好 Go 语言,指针是必须了解的。本小节中,就将学习 Go 语言指针相关知识点。每一个变量都会分配一块内存,数据保存在内存中,内存有一个地址,就像门牌号,通过这个地址就可以找到里面存储的数据。指针就是保存这个内存地址的变量。

27

Go 语言切片(Slice)初始化_删除元素_遍历

切片和数组类似,是数据集合。和数组不同的是,切片是一块动态分配大小的连续空间。它和 Java 语言中的 List 集合类似。切片的声明格式如下:var name []T name 表示切片变量名,T 表示切片类型,下面是示例代码 ...

28

Go 语言 switch 语句(分支判断)

分支判断可以理解成批量的 if 语句,使用 switch 语句可以非常方便地对大量值进行条件判断。Go 语言改进了其他语言中 switch 语句的设计弊端。Go 语言中 switch 中的每一个 case 都是独立代码块,无需通过 break 语句跳出代码块,以避免执行到下一个 case 代码块 ...

29

Go 语言变量声明_定义_赋值(图文讲解)

编程中可以说最常见的就是变量了,主要被用来存储各种类型数据。关于变量的类型,主要有: 整型浮、点型、布尔型、结构体等。Go 语言中不同类型的变量,需要先声明,才能够被使用。

30

Jetbrains GoLang 安装&开发环境搭建

Jetbrains GoLang 是一款面向 Go 语言,旨在为 Go 开发提供符合人体工程学的开发工具。它提供 Go 语言的编辑、调试、编译、管理、重构等丰富的功能。本小节,我们将学习安装搭建集成开发环境Jetbrains GoLang, 并通过它来开发一个简单的 HelloWorld 程序!

31

Linux系统安装Go语言环境(图文教程)

本小节,我将演示如何在 Linux 系统上安装 Go 语言环境。这里,我以自己购买的云服务器 CentOS 7 做演示。首先到官网下载 Linux 系统 Go 安装包,下载完成后,将压缩包上传到指定目录下,执行如下命令,将压缩包解压到 /usr/local/go 下...

32

Mac系统安装Go语言环境(图文教程)

这一小节,我将手摸手教大家如何在 Mac 系统上安装 Go 语言环境。Mac 系统有下面两种安装方式。一、通过 brew 安装 二、官网下载 Go 语言 pkg 包来安装,两种方式均通过图文来给大家讲解,良心教程。

33

Windows系统安装Go语言环境(图文教程)

本小节,我将演示如何在 Windows 系统上安装 Go 语言环境。一、下载 Windows 系统 Go 安装包,首先到官网下载 Windows 系统 Go 安装包,详细请参考前面小节内容Go下载,下载完成后,双击安装包开始安装,最后检查 Windows 系统 Go 环境是否安装成功。