这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记。
Go简介
什么是Go语言:特点
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
哪些公司在用
Go入门
开发环境
编译器
Vscode\Goland
基础语法
Hello World
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
数组
数组定义:var 数组名 [数组大小] 数组类型
- 数组的地址可以通过数组名来获取:&a\
- 数组第一个元素的地址就是数组的首地址 for-range遍历数组
for index,value:=range array01{ }
- 第一个返回值index是数组的下标\
- 第二个value是在该下标位置的值\
- array01是数组名
切片
1.切片是一个数组的引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。
2.切片的长度是可以变化的,因此切片是一个可以变化动态数组。
3.切片定义:var 切片名 []类型
切片使用的三种方式:
- 定义一个切片,然后让切片引用一个已经创建好的数组。
- 通过make来创建切片
- 定义一个切片,直接指定具体数组
结构体(Struct)
- struct 用来自定义复杂数据结构,可以包含多个字段(属性),可以嵌套其他结构体,也可以定义方法。
- 封装性:字段首字母大写包外可访问、小写包外不可访问
- 继承:用聚合实现继承(把父类放到子类里)
- tag:定义特定格式中的形式或约束条件,书写:``
- 结构体的方法:收参是A结构体就是A结构体的方法。
- 结构体的初始化:
- 直接初始化:person := Person{}
- 使用new:返回的是指针
- 类似数组,也有值传递和引用传递的区别,不传指针就没法改
- 注意,指针和非指针对字段的访问都是用.:person.Age =
字符串操作
标准库strings包
时间处理
标准库time包
数字解析
标准库strconv包
进程信息
标准库os包
总结与思考
Go语言和java、C、C++等语言基础语法上有相通的地方,因此入门不太困难,Go有其独特的优势,很值得学习。