Go语言快速上手 | 青训营笔记

289 阅读4分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

GO语言简介

Go语言(Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具python等动态语言的开发速度和C/C++等编译型语言的性能与安全性”。

用一个表达式来形容(GO = C + Python) Go语言自己的早期源码使用C语言和汇编语言写成,从 Go 1.5 版本后,完全使用Go语言自身进行编写。

GO语言的特点

  1. 高性能、高并发
  2. 语法简单、上手容易
  3. 丰富的标准库
  4. 完善的工具链
  5. 静态链接
  6. 快速编译
  7. 跨平台
  8. 垃圾回收(内存自动回收,防止造成内存泄露)

GO语言吉祥物

1.png

常用开发工具

  • Visual Studio Code
  • 下载地址:code.visualstudio.com/
  • 微软的产品,一个运行于Mac OS、Windows和Linux之上的工具,默认提供G语言的语法高亮。安装Go语言插件,还可以支持智能提示,编译运行等功能。
  • Golang
  • 下载地址:go.dev/

哪些大公司正在使用Go语言

image.png

GO语言适合做什么

  • 服务器编程,例如处理日志、数据打包、虚拟机处理、文件系统等。
  • 分布式系统、数据库代理器、中间件等,例如Etcd。
  • 网络编程,这一块目前应用最广,包括Web应用、API应用、下载应用等。
  • 数据库操作。
  • 开发云平台。

GO语言的学习方向

  • 区块链研发
  • 服务端应用
  • 游戏软件开发
  • 分布式/云计算

GO语言快速上手

基础语法-hello world

微信图片_20220510234610.png

  • package(创建包)
  • import(导入包)
  • main(函数)

基础语法-变量

3.png

  • GO语言是一门强类型语言,变量有自己的变量类型(整型、字符串、浮点型、布尔型)
  • 变量申明的两种方式:(var 变量名 变量类型(可省略,系统会自动判断) = 值) or (变量 := 值)
  • 常量: 把var变成const
  • 常量的声明语句定义了常量名,和变量的声明语法类似,常量的值不可修改

基础语法-条件判断

4.png

  • 和C/C++不同的是if后面不加圆括号,但是必须加花括号

基础语法-循环

5.png

  • 在GO中没有while、do while循环,只有for循环一种
  • for循环和if判断一样后面不加圆括号,但是必须加花括号

基础语法-数组

6.png

  • 数组是一个长度固定的元素序列
  • 以数组索引进行取值或者赋值操作

基础语法-切片

6.png

  • 切片不同于数组可以任意更改长度
  • 在使用append追加元素的时候必须赋值回给原数组
  • 一个slice由三个部分构成:指针、长度和容量。

基础语法-map

7.png

  • 一个map就是一个哈希表的引用,map类型可以写为map[K]V,其中K和V分别对应key和value
  • 可以使用make函数可以创建一个空map
  • map类型的空值是nil,也就是没有引用任何哈希表

8.png

基础语法-range快速遍历

1.png

  • 对于一个数组或者是字典,可以使用range快速遍历
  • range遍历会返回两个值,一个是索引,一个是索引对应的值
  • 如果不需要索引,可以使用"_"忽略

基础语法-函数

  • 函数声明包括函数名、形式参数列表、返回值列表(可省略)以及函数体
  • 自定义一个实现简单两数相加的函数

1.png

  • 每一次函数调用都必须按照声明顺序为所有参数提供实参
  • 函数通常会返回两个值,一个是返回结果,一个是错误信息

- 函数递归

  • 通过函数递归实现从1加到5

1.png

  • 递归函数通常有相同的结构:一个 跳出条件和一个递归体。

基础语法-指针

1.png

  • 指针的重要用途是对于传入参数进行修改
  • 指针类型调用时需要加&符号