Go 快速入门指南 - init 函数

2022-12-23
阅读 2 分钟
894
init() 函数 是一个特殊的函数,一般称为初始化函数,不能被调用。 在每个文件里面,当程序启动或者文件被作为包引用的时候,init() 函数就会自动执行,一般用来做一些包的初始化操作。
封面图

Go 快速入门指南 - Map

2022-12-23
阅读 3 分钟
568
概述Map 是一种键值对的无序集合,在其他编程语言中也被称为 字典, Hash, 关联数组。重要的一点是: Map 键 的数据类型必须是可以比较的,例如 string, int, float64,类型比较可以参考这篇文档 。Map 值 的数据类型可以是任意的。语法规则 {代码...} 获取值/改变值 {代码...} 删除元素调用 delete() 方法完成。 {代码......
封面图

Go 快速入门指南 - 字符切片

2022-12-23
阅读 2 分钟
832
概述建议先阅读 字符串, 切片 两个小节。由于字符串不可变,如果每次以 重新赋值 的方式改变字符串,效率会非常低,这时应该使用 []byte 类型,[]byte 元素可以被修改。因为 byte 类型是 uint8 类型的别名,所以 []byte 也就是 []uint8。语法规则字符串转化为 []byte {代码...} []byte 转换为字符串 {代码...} 长度计算...
封面图

Go 快速入门指南 - 切片

2022-12-23
阅读 4 分钟
823
切片 是对数组的一个连续片段的引用。片段可以是整个数组,也可以是数组的一部分 (例如数组的第 3 个元素到第 8 个元素)。所以 切片 是一个引用类型,改变切片的值也就改变了底层数组的值。
封面图

Go 快速入门指南 - 数组

2022-12-23
阅读 3 分钟
904
数组 是具有相同数据类型的一组长度固定的数据项序列,分配在连续的内存地址上。其中数据类型可以是整型、布尔型等基础数据类型,也可以是自定义数据类型。数组长度 必须是一个常量表达式,并且必须是一个非负数。同时,数组长度 也是数组类型的一部分, 例如 [3]int 和 [5]int是不同的类型。
封面图

Go 快速入门指南 - 可见性和作用域

2022-12-22
阅读 2 分钟
1.1k
可见性包通过 导出 机制控制 变量、结构体、函数 等数据可见性。只有 1 个简单的规则: 首字母大写,可导出,首字母小写,不可导出。 也就是说,Go 的访问控制只有两种模式:包内可见全局可见例子 {代码...} 作用域词法块 是指由大括号围起来的一个语句序列,比如 for 循环语句块,if/else 判断语句块。在 语句块 内部声明...
封面图

Go 快速入门指南 - goto 语句

2022-12-22
阅读 1 分钟
930
概述关键字 goto 可以使程序跳转到指定的位置执行,那么这个位置如何表示呢?使用 标签 来表示 (可以理解为标签就是一个变量)。语法规则标签的名称大小写敏感,可以搭配 for, switch 语句使用。 {代码...} 例子注意: 该示例会无限输出,终止循环请按 Ctrl + C。 {代码...} 联系我
封面图

Go 快速入门指南 - switch

2022-12-22
阅读 3 分钟
895
概述相较于主流编程语言,Go 中的 switch 语法更加灵活,它接受任意形式的表达式。语法规则switch 后面的表达式不需要括号case 语句块执行完会自动退出整个 switch 语句块,也就是不需要使用 break 显式声明case 语句快执行完后,如果希望继续向下执行,可以使用关键字 fallthrough, 这样就和其他编程语言不加 break 效...
封面图

Go 快速入门指南 - range

2022-12-22
阅读 2 分钟
830
Go 特有的一种的遍历结构。它可以遍历任何一个 集合(字符串、数组、切片、Map、通道等)。语法上类似主流编程语言中的 foreach 语句,但可以获得每次遍历对应的索引。
封面图

Go 快速入门指南 - for

2022-12-22
阅读 2 分钟
867
概述Go 仅提供了关键字 for 来表示循环,并没有提供 while 和 do-while 语句,这一点和主流编程语言不同。语法规则 {代码...} 注意: 迭代表达式中,不支持 ++i, --i 这种形式,详情见 自增/自减。例子单个计数器 {代码...} 多个计数器 {代码...} 模仿 while {代码...} 模仿 do-while {代码...} 无限循环 {代码...} 联系我
封面图

Go 快速入门指南 - 自增自减

2022-12-22
阅读 1 分钟
916
自增和主流编程语言的自增语法不同,Go 只支持 i++ 方式,不支持 ++i 方式。正确 {代码...} 错误 {代码...} 自减和主流编程语言的自减语法不同,Go 只支持 i-- 方式,不支持 --i 方式。正确 {代码...} 错误 {代码...} 联系我
封面图

Go 快速入门指南 - if/else

2022-12-22
阅读 1 分钟
874
概述和其他编程语言中 if/else 规则一致,除了语法上略有差异。语法规则if 和 else if 后面的条件表达式是不需要括号的。单个 if {代码...} 例子 {代码...} 单个 if/else {代码...} 例子 {代码...} 多个分支 {代码...} 例子 {代码...} 联系我
封面图

Go 快速入门指南 - 指针

2022-12-22
阅读 2 分钟
889
Go 提供了指针操作,但是没有指针运算。也就是说,不像 C 语言中那般强大,毕竟 指针是 C 语言的灵魂。即使如此,指针依然是非常重要的,在一些 性能敏感 的场景中,指针的身影随处可见。如果是系统编程、操作系统或者网络应用,指针更是不可或缺的一部分。
封面图

Go 快速入门指南 - 保留小数位

2022-12-22
阅读 2 分钟
1.6k
通过调用 fmt.Sprintf() 方法转换非常简单,但是不足之处在于返回值是一个字符串,如果需要保留精度的值依然要求为 浮点型,可能需要使用二次 类型转换,不太友好。
封面图

Go 快速入门指南 - 类型转换

2022-12-22
阅读 2 分钟
862
在类型转换时,要注意两边的值类型大小,可以将一个较小的值类型转换为一个较大的值类型,但是反过来,却有可能报错。例如:将一个 int64 转换为 int32 时,可能会产生 溢出。
封面图

Go 快速入门指南 - 字符

2022-12-22
阅读 1 分钟
767
ASCII 码只需要 7 bit 就可以完整地表示,但只能表示英文字母在内的128个字符。 为了表示世界上大部分的文字系统,发明了 Unicode, 它是 ASCII 的超集,包含世界上书写系统中存在的所有字符,并为每个代码分配一个标准编号(称为Unicode CodePoint),在 Go 中称之为 rune。
封面图

Go 快速入门指南 - 字符串

2022-12-22
阅读 3 分钟
778
Go 中 字符串 语义和其他编程语言中的字符串中一样,有一点不同的地方在于: Go 中字符串值无法改变,可以理解为:一旦完成定义之后,字符串就是一个 常量。
封面图

Go 快速入门指南 - 调试打印

2022-12-22
阅读 2 分钟
761
普通打印优点:内置函数,不需要引入额外的包,简单方便。不足:无法进行格式化打印,无法完整打印复合数据结构 (如数组, Map 等)。println 函数打印多个传入的参数,并自动加一个换行。例子 {代码...} print 函数和 println 功能一样,但是不会自动加换行。格式化打印这里先介绍 2 个方法,分别是 fmt 包里面的 Println...
封面图

Go 快速入门指南 - 包的导入

2022-12-22
阅读 1 分钟
596
导入包关键字 import语法规则单个导入 {代码...} 多个导入 {代码...} 导入包使用别名 {代码...} 例子导入 打印包 {代码...} 导入 打印包 和 字符串包 {代码...} 导入包使用别名 {代码...} 联系我
封面图

Go 快速入门指南 - 运算优先级

2022-12-22
阅读 1 分钟
590
运算符优先级从高到低||&&<- (通道操作符,后面会讲到,暂时先忽略)== != < <= > >=+ - | ^* / % << >> & &^^ !最佳实践通过使用括号来提升某个表达式的运算优先级,提高代码可读性。例子 {代码...}
封面图

Go 快速入门指南 - 常量生成器

2022-12-22
阅读 1 分钟
542
常量生成器关键字 iota, 创建一系列相关的值,省略逐个定义。语法规则 {代码...} 例子 {代码...} 在上面的声明中,Sunday 的值为 0, Monday 的值为 1, 以此类推。联系我
封面图

Go 快速入门指南 - 自定义类型

2022-12-22
阅读 1 分钟
488
自定义类型关键字 type, 主要用来对同一种类型进行抽象。语法规则 {代码...} 同时定义多个自定义类型 {代码...} 嵌套定义可以基于已有的自定义类型,定义一个新的自定义类型。 {代码...} 使用规则和变量使用规则一样。 {代码...} 联系我
封面图

Go 快速入门指南 - 常量

2022-12-22
阅读 1 分钟
503
常量关键字 const, 和其他编程语言中常量的语义一样,定义后无法修改。语法规则 {代码...} 其中,常量类型为可选,因为编译器可以根据值来推断其类型 (建议指定类型,可以增强语义性)。同时定义多个常量 {代码...} 例子 {代码...} 显式/隐式浮点类型显式类型定义: const Pi float64 = 3.14159隐式类型定义: const Pi =...
封面图

Go 快速入门指南 - 空白标识符

2022-12-22
阅读 1 分钟
598
_ 是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被丢弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。
封面图

Go 快速入门指南 - 变量

2022-12-22
阅读 1 分钟
786
变量关键字 var, 定义后可以修改。语法规则var 关键字 {代码...} 其中,变量类型为可选,因为编译器可以根据值来推断其类型 (建议指定类型,可以增强语义性)。直接定义 {代码...} 其中,不需要变量类型,因为编译器可以根据值来推断其类型。注意事项在函数中定义的变量,定义后必须使用,否则编译时会报错: Unused varia...
封面图

Go 快速入门指南 - 基本代码格式,关键字, 预定义标识符

2022-12-22
阅读 1 分钟
680
Go 的文件以 .go 为后缀,文件名称必须以字母开头 (任何 UTF-8 编码的字符或 _),后面跟随 0 个或多个字符或者 Unicode 数字。
封面图

Go 快速入门指南 - 关键字和运行方式

2022-12-22
阅读 1 分钟
539
一个包由一个或多个 .go 文件组成,放在一个文件夹中。比如字符串相关处理代码全部放在 string 包中。每个 .go 文件的开始必须使用 package 声明,比如字符串包声明为 package string。
封面图

Go 快速入门指南 - 环境安装

2022-12-22
阅读 3 分钟
735
概述为了节省篇幅,笔者将常用的 3 种操作系统对应的安装教程汇总到了一起,读者可以直接选择对应内容阅读。Windows 环境搭建下载1. 打开 Go 官网下载地址([链接]),选择 Microsoft Windows2. 点击对应的版本开始下载,比如 go1.19.1.windows-amd64.msi安装双击下载好的 .msi 文件,然后下一步 -> 下一步 -> 最终...
封面图

Go 快速入门指南 - 序言

2022-12-12
阅读 2 分钟
947
书中几乎没有较长篇幅的理论知识,更多的是 示例驱动开发,鼓励读者通过快速实践加深基础理解,加快学习速度。全书按照章节顺序阅读即可,其中一些需要前置知识的小节都会有备注信息。
封面图