这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
GO语言简介
Go语言(Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。
用一个表达式来形容(GO = C + Python) Go语言自己的早期源码使用C语言和汇编语言写成,从 Go 1.5 版本后,完全使用Go语言自身进行编写。
GO语言的特点
- 高性能、高并发
- 语法简单、上手容易
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收(内存自动回收,防止造成内存泄露)
GO语言吉祥物
常用开发工具
- Visual Studio Code
- 下载地址:code.visualstudio.com/
- 微软的产品,一个运行于Mac OS、Windows和Linux之上的工具,默认提供G语言的语法高亮。安装Go语言插件,还可以支持智能提示,编译运行等功能。
- Golang
- 下载地址:go.dev/
哪些大公司正在使用Go语言
GO语言适合做什么
- 服务器编程,例如处理日志、数据打包、虚拟机处理、文件系统等。
- 分布式系统、数据库代理器、中间件等,例如Etcd。
- 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用等。
- 数据库操作。
- 开发云平台。
GO语言的学习方向
- 区块链研发
- 服务端应用
- 游戏软件开发
- 分布式/云计算
GO语言快速上手
基础语法-hello world
- package(创建包)
- import(导入包)
- main(函数)
基础语法-变量
- GO语言是一门强类型语言,变量有自己的变量类型(整型、字符串、浮点型、布尔型)
- 变量申明的两种方式:(var 变量名 变量类型(可省略,系统会自动判断) = 值) or (变量 := 值)
- 常量: 把var变成const
- 常量的声明语句定义了常量名,和变量的声明语法类似,常量的值不可修改
基础语法-条件判断
- 和C/C++不同的是if后面不加圆括号,但是必须加花括号
基础语法-循环
- 在GO中没有while、do while循环,只有for循环一种
- for循环和if判断一样后面不加圆括号,但是必须加花括号
基础语法-数组
- 数组是一个长度固定的元素序列
- 以数组索引进行取值或者赋值操作
基础语法-切片
- 切片不同于数组可以任意更改长度
- 在使用append追加元素的时候必须赋值回给原数组
- 一个slice由三个部分构成:指针、长度和容量。
基础语法-map
- 一个map就是一个哈希表的引用,map类型可以写为map[K]V,其中K和V分别对应key和value
- 可以使用make函数可以创建一个空map
- map类型的空值是nil,也就是没有引用任何哈希表
基础语法-range快速遍历
- 对于一个数组或者是字典,可以使用range快速遍历
- range遍历会返回两个值,一个是索引,一个是索引对应的值
- 如果不需要索引,可以使用"_"忽略
基础语法-函数
- 函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体
- 自定义一个实现简单两数相加的函数
- 每一次函数调用都必须按照声明顺序为所有参数提供实参
- 函数通常会返回两个值,一个是返回结果,一个是错误信息
- 函数递归
- 通过函数递归实现从1加到5
- 递归函数通常有相同的结构:一个 跳出条件和一个递归体。
基础语法-指针
- 指针的重要用途是对于传入参数进行修改
- 指针类型调用时需要加&符号