这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记。
1.1 包的特性
- 一个目录下的同级文件属于同一个包
- 包名可以与其目录名不同
1.2 包的导入
如果导入的包没有使用,那么GO编译器会报编译错误,可以在前加上“ _ ”表示初始化某个包,但并不使用包中的变量或者函数。还可以在包前采用其他名称代替此包。
imoprt (
_ "os"
alias2 "fmt"
)
注意:如果已经用下划线“ _ ”代替了别名,继续在调用这个包时会产生编译错误。
1.3 变量定义
简短模式的变量定义
名字 := 表达式
注意:
- 只能用来定义变量,同时会显式初始化
- 不能提供数据类型
- 只能用在函数内部,既不能用来声明全局变量
1.4 for-range的便利
- for range的返回值有一定的规律
- 数组、切片、字符串返回索引和值
- map返回键和值
- 通道只返回通道内的值
1.5 GO语言之比较
Go语言对于值之间的比较有非常严格的限制,只要两个相同类型的值才可以进行比较
- 如果值的类型是接口,那么他们必须都实现了相同的接口
- 如果其中一个值是常量,那么另外一个值可以不是常量,但是类型必须和该常量的类型相同
- 如果以上都不满足,则必须将其中一个进行强转
1.6 字符串的转义
在Go语言中,字符串字面量使用英文双引号(")或者(`)来创建
- 双引号用来创建可解析的字符串,支持转义,但不能用来引用多行
- 反引号用来创建原生的字符串字面量,可能由多行组成,但不支持转义,并且可以包含除反引号外的其他所有字符