随笔分类 - Go 快速入门
Go 快速入门
摘要:概述 建议先阅读 字符串, 切片 两个小节。 由于字符串不可变,如果每次以 重新赋值 的方式改变字符串,效率会非常低,这时应该使用 []byte 类型,[]byte 元素可以被修改。 因为 byte 类型是 uint8 类型的别名,所以 []byte 也就是 []uint8。 语法规则 字符串转化为
阅读全文
摘要:概述 阅读本小节之前,建议先阅读 数组 小节。 切片 是对数组的一个连续片段的引用。片段可以是整个数组,也可以是数组的一部分 (例如数组的第 3 个元素到第 8 个元素)。所以 切片 是一个引用类型,改变切片的值也就改变了底层数组的值。 一个数组可以被多个 切片 引用,它们之间共享数组的数据。当数组
阅读全文
摘要:概述 数组 是具有相同数据类型的一组长度固定的数据项序列,分配在连续的内存地址上。其中数据类型可以是整型、布尔型等基础数据类型,也可以是自定义数据类型。 数组长度 必须是一个常量表达式,并且必须是一个非负数。同时,数组长度 也是数组类型的一部分, 例如 [3]int 和 [5]int 是不同的类型。
阅读全文
摘要:可见性 包通过 导出 机制控制 变量、结构体、函数 等数据可见性。 只有 1 个简单的规则: 首字母大写,可导出,首字母小写,不可导出。 也就是说,Go 的访问控制只有两种模式: • 包内可见 • 全局可见 例子 package hello var ( privateName string // 只
阅读全文
摘要:概述 Go 特有的一种的遍历结构。它可以遍历任何一个 集合(字符串、数组、切片、Map、通道等)。语法上类似主流编程语言中的 foreach 语句,但可以获得每次遍历对应的索引。 语法规则 // key 和 val 也可以使用别的变量名称,比如 index, item 等 for key, val
阅读全文
摘要:自增 和主流编程语言的自增语法不同,Go 只支持 i++ 方式,不支持 ++i 方式。 正确 package main func main() { i := 1 i++ println(i) // 输出 2 } 错误 package main func main() { i := 1 ++i //
阅读全文
摘要:概述 Go 仅提供了关键字 for 来表示循环,并没有提供 while 和 do-while 语句,这一点和主流编程语言不同。 语法规则 for 初始表达式; 条件表达式; 迭代表达式 { // do something } 注意: 迭代表达式中,不支持 ++i, --i 这种形式,详情见 自增/自
阅读全文
摘要:if/else Go 中的 if/else 语句和其他编程语言中 if/else 规则一致,除了语法上略有差异。 语法规则 if 和 else if 后面的条件表达式是不需要括号的。 单个 if if condition { // do something } 例子 package main fun
阅读全文
摘要:概述 Go 提供了指针操作,但是没有指针运算。 也就是说,不像 C 语言中那般强大,毕竟 指针是 C 语言的灵魂。即使如此,指针依然是非常重要的,在一些 性能敏感 的场景中,指针的身影随处可见。如果是系统编程、操作系统或者网络应用,指针更是不可或缺的一部分。 指针的值是一个变量的地址。当然了,指针也
阅读全文
摘要:字符 Go 中表示字符的关键字为 rune, 也就是 int32 的别名。 ASCII 码只需要 7 bit 就可以完整地表示,但只能表示英文字母在内的128个字符。 为了表示世界上大部分的文字系统,发明了 Unicode, 它是 ASCII 的超集,包含世界上书写系统中存在的所有字符, 并为每个代
阅读全文
摘要:概述 在大多数处理浮点数的场景中,为了提高可读性,往往只需要精确到2位或3位,常用的方法有两种。 fmt.Sprintf() package main import "fmt" func main() { pi := 3.1415926 s1 := fmt.Sprintf("%.2f", pi) /
阅读全文
摘要:概述 Go 中 字符串 语义和其他编程语言中的字符串中一样,有一点不同的地方在于: Go 中字符串值无法改变,可以理解为:一旦完成定义之后,字符串就是一个 常量。 解释型字符串 使用双引号 " 括起来,其中的转义符将被替换,转义符包括: • \n: 换行符 • \r: 回车符 • \t: tab 键
阅读全文
摘要:导入包 关键字 import 语法规则 • 导入单个包 import "包名" • 导入多个包 import ( "包名1" "包名2" "包名3" ... ) • 导入包使用别名 import 别名 "包名" 例子 • 导入 打印包 package main import "fmt" func m
阅读全文
摘要:常量生成器 关键字 iota, 创建一系列相关的值,省略逐个定义。 语法规则 const ( 常量1 [常量类型] = iota 常量2 常量3 常量4 常量5 ... ) 例子 package main const ( Sunday int = iota Monday // 1 Tuesday /
阅读全文
摘要:变量 关键字 var, 定义后可以修改。 语法规则 • var 关键字 var 变量名称 [变量类型] = 变量值 # 例子 var pi float = 3.14159 其中,变量类型为可选,因为编译器可以根据值来推断其类型 (建议指定类型,可以增强语义性)。 • 直接定义 变量名称 := 变量值
阅读全文
摘要:示例代码 package main // 包名,必须声明 func main() { println("hello world") } Go 代码组织方式 Go 代码是使用包来组织的,类似于其他编程语言中的库、模块、命名空间。 包 一个包由一个或多个 .go 文件组成,放在一个文件夹中。比如字符串相
阅读全文
摘要:概述 为了节省篇幅,笔者将常用的 3 种操作系统对应的安装教程汇总到了一起,读者可以直接选择对应内容阅读。 Windows 环境搭建 下载 1. 打开 Go 官网下载地址(https://go.dev/dl/),选择 Microsoft Windows 2. 点击对应的版本开始下载,比如 go1.1
阅读全文
摘要:这本书是写什么的? 这是一本 Go 语言快速入门手册,目标读者是有任一编程语言基础,希望以最快的时间 (比如一个周末) 入门 Go 语言。 这本书应该怎么读? 书中几乎没有较长篇幅的理论知识,更多的是 示例驱动开发,鼓励读者通过快速实践加深基础理解,加快学习速度。 全书按照章节顺序阅读即可,其中一些
阅读全文

浙公网安备 33010602011771号